From ef67d08e194e244bd0b24d76580dea9815ad2e49 Mon Sep 17 00:00:00 2001 From: JohnMoehrke Date: Mon, 9 Dec 2024 09:45:55 -0600 Subject: [PATCH] some fixes and improvements --- input/examples/example-patient.json | 5 ---- input/examples/example-practitioner.json | 5 ---- input/fsh/capability.fsh | 26 +++++++++---------- input/fsh/ex-audit-115.fsh | 10 +++++-- input/fsh/ex-audit-116.fsh | 4 +-- input/fsh/ex-audit-117.fsh | 4 +-- input/pagecontent/volume-1.md | 20 ++++++++------ .../StructureDefinition-iti-sched-bundle.xml | 2 +- input/resources/codesystem-status-reason.xml | 4 +-- .../operationdefinition-appointment-book.xml | 15 ++++++----- .../operationdefinition-appointment-find.xml | 15 ++++++----- .../operationdefinition-appointment-hold.xml | 2 +- publication-request.json | 1 + sushi-config.yaml | 10 +++---- 14 files changed, 63 insertions(+), 60 deletions(-) diff --git a/input/examples/example-patient.json b/input/examples/example-patient.json index baff858..ba500e4 100644 --- a/input/examples/example-patient.json +++ b/input/examples/example-patient.json @@ -1,11 +1,6 @@ { "resourceType" : "Patient", "id" : "pat1", - "meta" : { - "profile" : [ - "http://hl7.org/fhir/uv/ipa/StructureDefinition/ipa-patient" - ] - }, "identifier" : [ { "use" : "usual", diff --git a/input/examples/example-practitioner.json b/input/examples/example-practitioner.json index 34c7f8e..200d405 100644 --- a/input/examples/example-practitioner.json +++ b/input/examples/example-practitioner.json @@ -1,11 +1,6 @@ { "resourceType": "Practitioner", "id": "dr-y", - "meta": { - "profile": [ - "http://hl7.org/fhir/uv/ipa/StructureDefinition/ipa-practitioner" - ] - }, "identifier": [ { "system": "http://hl7.org.fhir/sid/us-npi", diff --git a/input/fsh/capability.fsh b/input/fsh/capability.fsh index 2ba4c33..baa36b0 100644 --- a/input/fsh/capability.fsh +++ b/input/fsh/capability.fsh @@ -2,19 +2,16 @@ Instance: IHE.Scheduling.client InstanceOf: CapabilityStatement Usage: #definition * url = "https://profiles.ihe.net/ITI/Scheduling/CapabilityStatement/IHE.Scheduling.client" -* version = "0.8.0" +* version = "1.0.0" * name = "IHE_Scheduling_Client" * title = "IHE Scheduling Client" * status = #active * experimental = false -* date = "2024-02-05" +* date = "2024-12-12" * publisher = "Integrating the Healthcare Enterprise (IHE)" -* contact[0].name = "IHE" +* contact[0].name = "IHE IT Infrastructure Technical Committee" * contact[=].telecom.system = #url -* contact[=].telecom.value = "http://ihe.net" -* contact[+].name = "John Moehrke" -* contact[=].telecom.system = #email -* contact[=].telecom.value = "JohnMoehrke@gmail.com" +* contact[=].telecom.value = "https://www.ihe.net/ihe_domains/it_infrastructure/" * jurisdiction = http://unstats.un.org/unsd/methods/m49/m49.htm#001 "World" * description = "CapabilityStatement for Client Actor in the IHE IT Infrastructure Technical Framework Supplement IHE FHIR Scheduling. See https://profiles.ihe.net/ITI/TF/Volume1/ch-38.html." * copyright = "IHE http://www.ihe.net/Governance/#Intellectual_Property" @@ -26,12 +23,14 @@ Usage: #definition * format[+] = #application/fhir+json * format[=].extension.url = "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation" * format[=].extension.valueCode = #SHOULD +/* * implementationGuide[0] = "http://hl7.org/fhir/smart-app-launch/ImplementationGuide/hl7.fhir.uv.smart-app-launch" * implementationGuide[=].extension.url = "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation" * implementationGuide[=].extension.valueCode = #SHOULD * implementationGuide[+] = "http://hl7.org/fhir/uv/ipa/ImplementationGuide/hl7.fhir.uv.ipa" * implementationGuide[=].extension.url = "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation" * implementationGuide[=].extension.valueCode = #SHOULD +*/ * implementationGuide[+] = "https://profiles.ihe.net/ITI/BALP/ImplementationGuide/ihe.iti.balp" * implementationGuide[=].extension.url = "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation" * implementationGuide[=].extension.valueCode = #SHOULD @@ -119,19 +118,16 @@ Instance: IHE.Scheduling.server InstanceOf: CapabilityStatement Usage: #definition * url = "https://profiles.ihe.net/ITI/Scheduling/CapabilityStatement/IHE.Scheduling.server" -* version = "0.8.0" +* version = "1.0.0" * name = "IHE_Scheduling_Server" * title = "IHE Scheduling Server" * status = #active * experimental = false -* date = "2024-02-05" +* date = "2024-12-12" * publisher = "Integrating the Healthcare Enterprise (IHE)" -* contact[0].name = "IHE" +* contact[0].name = "IHE IT Infrastructure Technical Committee" * contact[=].telecom.system = #url -* contact[=].telecom.value = "http://ihe.net" -* contact[+].name = "John Moehrke" -* contact[=].telecom.system = #email -* contact[=].telecom.value = "JohnMoehrke@gmail.com" +* contact[=].telecom.value = "https://www.ihe.net/ihe_domains/it_infrastructure/" * description = "CapabilityStatement for Server Actor in the IHE IT Infrastructure Technical Framework Supplement IHE FHIR Scheduling. See https://profiles.ihe.net/ITI/TF/Volume1/ch-38.html." * copyright = "IHE http://www.ihe.net/Governance/#Intellectual_Property" * kind = #requirements @@ -142,12 +138,14 @@ Usage: #definition * format[+] = #application/fhir+json * format[=].extension.url = "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation" * format[=].extension.valueCode = #SHALL +/* * implementationGuide[0] = "http://hl7.org/fhir/smart-app-launch/ImplementationGuide/hl7.fhir.uv.smart-app-launch" * implementationGuide[=].extension.url = "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation" * implementationGuide[=].extension.valueCode = #SHOULD * implementationGuide[+] = "http://hl7.org/fhir/uv/ipa/ImplementationGuide/hl7.fhir.uv.ipa" * implementationGuide[=].extension.url = "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation" * implementationGuide[=].extension.valueCode = #SHOULD +*/ * implementationGuide[+] = "https://profiles.ihe.net/ITI/BALP/ImplementationGuide/ihe.iti.balp" * implementationGuide[=].extension.url = "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation" * implementationGuide[=].extension.valueCode = #SHOULD diff --git a/input/fsh/ex-audit-115.fsh b/input/fsh/ex-audit-115.fsh index 50f4ca3..db540d1 100644 --- a/input/fsh/ex-audit-115.fsh +++ b/input/fsh/ex-audit-115.fsh @@ -21,7 +21,7 @@ Usage: #example * agent[server].network.type = http://hl7.org/fhir/network-type#5 "URI" * entity[patient].type = http://terminology.hl7.org/CodeSystem/audit-entity-type#1 "Person" * entity[patient].role = http://terminology.hl7.org/CodeSystem/object-role#1 "Patient" -* entity[patient].what = Reference(Patient/ex-patient) +* entity[patient].what = Reference(Patient/pat1) * entity[data].type = http://terminology.hl7.org/CodeSystem/audit-entity-type#2 "System Object" * entity[data].role = http://terminology.hl7.org/CodeSystem/object-role#4 "Domain Resource" * entity[data].what = Reference(Appointment/appt1-1) @@ -50,8 +50,14 @@ Usage: #example * agent[client].network.type = http://hl7.org/fhir/network-type#2 "IP Address" * entity[patient].type = http://terminology.hl7.org/CodeSystem/audit-entity-type#1 "Person" * entity[patient].role = http://terminology.hl7.org/CodeSystem/object-role#1 "Patient" -* entity[patient].what = Reference(Patient/ex-patient) +* entity[patient].what = Reference(Patient/pat1) * entity[data].type = http://terminology.hl7.org/CodeSystem/audit-entity-type#2 "System Object" * entity[data].role = http://terminology.hl7.org/CodeSystem/object-role#4 "Domain Resource" * entity[data].what = Reference(Appointment/appt1-1) +Instance: ex-device +InstanceOf: Device +Title: "Dummy Device example" +Description: "Dummy Device example for completeness sake. No actual use of this resource other than an example target" +Usage: #example +* meta.security = http://terminology.hl7.org/CodeSystem/v3-ActReason#HTEST diff --git a/input/fsh/ex-audit-116.fsh b/input/fsh/ex-audit-116.fsh index 9bf3362..e9c4b9e 100644 --- a/input/fsh/ex-audit-116.fsh +++ b/input/fsh/ex-audit-116.fsh @@ -21,7 +21,7 @@ Usage: #example * agent[server].network.type = http://hl7.org/fhir/network-type#5 "URI" * entity[patient].type = http://terminology.hl7.org/CodeSystem/audit-entity-type#1 "Person" * entity[patient].role = http://terminology.hl7.org/CodeSystem/object-role#1 "Patient" -* entity[patient].what = Reference(Patient/ex-patient) +* entity[patient].what = Reference(Patient/pat1) * entity[data].type = http://terminology.hl7.org/CodeSystem/audit-entity-type#2 "System Object" * entity[data].role = http://terminology.hl7.org/CodeSystem/object-role#4 "Domain Resource" * entity[data].what = Reference(Appointment/appt1-1) @@ -49,7 +49,7 @@ Usage: #example * agent[client].network.type = http://hl7.org/fhir/network-type#2 "IP Address" * entity[patient].type = http://terminology.hl7.org/CodeSystem/audit-entity-type#1 "Person" * entity[patient].role = http://terminology.hl7.org/CodeSystem/object-role#1 "Patient" -* entity[patient].what = Reference(Patient/ex-patient) +* entity[patient].what = Reference(Patient/pat1) * entity[data].type = http://terminology.hl7.org/CodeSystem/audit-entity-type#2 "System Object" * entity[data].role = http://terminology.hl7.org/CodeSystem/object-role#4 "Domain Resource" * entity[data].what = Reference(Appointment/appt1-1) diff --git a/input/fsh/ex-audit-117.fsh b/input/fsh/ex-audit-117.fsh index 5120cf1..1180a2a 100644 --- a/input/fsh/ex-audit-117.fsh +++ b/input/fsh/ex-audit-117.fsh @@ -21,7 +21,7 @@ Usage: #example * agent[server].network.type = http://hl7.org/fhir/network-type#5 "URI" * entity[patient].type = http://terminology.hl7.org/CodeSystem/audit-entity-type#1 "Person" * entity[patient].role = http://terminology.hl7.org/CodeSystem/object-role#1 "Patient" -* entity[patient].what = Reference(Patient/ex-patient) +* entity[patient].what = Reference(Patient/pat1) * entity[data].type = http://terminology.hl7.org/CodeSystem/audit-entity-type#2 "System Object" * entity[data].role = http://terminology.hl7.org/CodeSystem/object-role#4 "Domain Resource" * entity[data].what = Reference(Appointment/appt1-1) @@ -50,7 +50,7 @@ Usage: #example * agent[client].network.type = http://hl7.org/fhir/network-type#2 "IP Address" * entity[patient].type = http://terminology.hl7.org/CodeSystem/audit-entity-type#1 "Person" * entity[patient].role = http://terminology.hl7.org/CodeSystem/object-role#1 "Patient" -* entity[patient].what = Reference(Patient/ex-patient) +* entity[patient].what = Reference(Patient/pat1) * entity[data].type = http://terminology.hl7.org/CodeSystem/audit-entity-type#2 "System Object" * entity[data].role = http://terminology.hl7.org/CodeSystem/object-role#4 "Domain Resource" * entity[data].what = Reference(Appointment/appt1-1) diff --git a/input/pagecontent/volume-1.md b/input/pagecontent/volume-1.md index 2e2bc4b..a593109 100644 --- a/input/pagecontent/volume-1.md +++ b/input/pagecontent/volume-1.md @@ -27,18 +27,14 @@ IHE Transactions can be found in the Technical Frameworks General Introduction [ Both appendices are located at . - Actors - - [Scheduling Client](#client) - [Scheduling Server](#server) - - Transactions - - Find Potential Appointments [ITI_115](ITI-115.html) - Hold Appointment [ITI-116](ITI-116.html) - Book Appointment [ITI-177](ITI-117.html) - Find Existing Appointments [ITI-118](ITI-118.html) - The figure below shows the actors directly involved in the Scheduling Profile and the relevant transactions between them.
@@ -47,7 +43,6 @@ The figure below shows the actors directly involved in the Scheduling Profile an

- Table 1:55.1-1: Profile Acronym Profile - Actors and Transactions | Actors | Transactions | Initiator or Responder | Optionality | Reference | @@ -63,6 +58,7 @@ Table 1:55.1-1: Profile Acronym Profile - Actors and Transactions {: .grid} ### 1:55.1.1 Actors + The actors in this profile are described in more detail in the sections below. @@ -89,6 +85,7 @@ The Scheduling Server provides services for providing a list of available appoin Please see the FHIR Capability Statement for [Server](CapabilityStatement-IHE.Scheduling.server.html). ### 1:55.1.2 Transaction Descriptions + The transactions in this profile are summarized in the sections below. #### 1:55.1.2.1 Find Potential Appointments [ITI-115] @@ -127,6 +124,7 @@ There are currently no options for these actors. ## 1:55.3 Scheduling Required Actor Groupings + There are no required groupings for this profile. @@ -148,6 +146,7 @@ There is wide variety of appointments that pertain to the healthcare domain. A c For example, the Scheduling server may modify existing appointments in order to free up time for an urgent appointment. While this may change the existing `Schedule` and `Slot` resources on the server, the Scheduling Client that is attempting to book the urgent appointment only needs to know that a new appointment can be booked. Any changes to existing appointments can be detected using the [\[ITI-118\]](./ITI-118.html) transaction, or, if the ITI Scheduling profile is implemented in an environment with an existing FHIR Subscription infrastructure, via a `SubscriptionNotification` for the changed appointment(s). The overall functionality covered by this profile is as follows: + 1. The Scheduling Client identifies the patient or patients for whom the appointment will be scheduled 2. The Scheduling Client determines the available parameters for requesting a list of available appointments 3. The Find Appointments transaction is completed. @@ -161,6 +160,7 @@ The overall functionality covered by this profile is as follows: ##### 1:55.4.2.1.1 Post-discharge PCP Visit ###### 1:55.4.2.1.1.1 Post-discharge PCP Visit Use Case Description + Ms. Philips is being discharged from Green Valley General Hospital. One of the steps of the discharge process incudes scheduling a follow-up appointment with Dr. Spears, Ms. Philip's primary care provider. Dr. Spears' practice is part of a different healthcare organization, which necessitates cross-organizational scheduling of the follow-up appointment. Without the availability of the ITI Scheduling functionality, the hospital staff would have to contact Dr. Spears' practice to negotiate an appointment for the patient, or leave it to Ms. Philips to schedule the appointment by herself. This makes it likely that the follow-up appointment may not occur in a timely manner, or at all. @@ -176,6 +176,7 @@ The ITI Scheduling profile would allow the two systems to communicate the reques
###### 1:55.4.2.1.2.1 Specialty Visit Scheduling Use Case Description + Dr. Brown detects that a radiology examination is recommended to proceed with the treatment of her Patient Mr. White. Dr. Brown opens the radiology examination scheduling in her clinical information systems and selects a radiology facility @@ -229,21 +230,24 @@ dialog of the patient portal. Actors are expected to follow the recommendations and requirements found in [Appendix Z.8 “Mobile Security Considerations”](https://profiles.ihe.net/ITI/TF/Volume2/ch-Z.html#z.8-mobile-security-considerations). -The resources exchanged in this profile could contain information which pose a privacy risk, or in some cases, a safety risk, to providers and other personnel, as well as patients. For example, practitioner or patient phone numbers and home addresses could be conveyed. Implementers need to determine what data will be exposed by the system and what level of public access there will be if any. +The resources exchanged in this profile could contain information which pose a privacy risk, or in some cases, a safety risk, to providers and other personnel, as well as patients. For example, practitioner or patient phone numbers and home addresses could be conveyed. Implementers need to determine what data will be exposed by the system and what level of public access there will be if any. Therefore the [Audit Trails and Node Authentication (ATNA)](https://profiles.ihe.net/ITI/TF/Volume1/ch-9.html) Profile is required. This mandates Access Controls, Secure Communications, and an Audit Trail capability. The use of [Basic Audit Log Patterns](https://profiles.ihe.net/ITI/BALP/index.html) is foundational to the AuditEvent profiles defined in this Implementation Guide. -Implementers need to consider this when determining the access policies for these Resources. System administrators for the underlying host systems must follow industry best practices for authentication, authorization, auditing, timely application of software patches, etc. +Implementers need to consider Privacy and Security when determining the access policies for these Resources. System administrators for the underlying host systems must follow industry best practices for authentication, authorization, auditing, timely application of software patches, etc. There are many reasonable methods of security for interoperability transactions which can be implemented without modifying the characteristics of the transactions in the Scheduling Profile. The use of TLS is encouraged, specifically the use of the ATNA Profile (see [ITI TF-1: 9](https://profiles.ihe.net/ITI/TF/Volume1/ch-9.html)). -User authentication on mobile devices and browsers is typically handled by more lightweight authentication schemes such as HTTP Authentication, OAuth 2.0, or OpenID Connect. IHE has a set of profiles for user authentication including Internet User Authentication (IUA) for REST-based authentication. Implementers SHOULD implement the [SMART on FHIR IG](http://hl7.org/fhir/smart-app-launch/) for the corresponding use cases (patient-facing or provider-facing). The network communication security and user authentication are layered in the HTTP transport layer. +User authentication on mobile devices and browsers is typically handled by more lightweight authentication schemes such as HTTP Authentication, OAuth 2.0, or OpenID Connect. IHE has a set of profiles for user authentication including [Internet User Authentication (IUA)](https://profiles.ihe.net/ITI/TF/Volume1/ch-34.html) for REST-based authentication with [ATNA](https://profiles.ihe.net/ITI/TF/Volume1/ch-9.html) "STX: HTTPS IUA Option" that uses OAuth for client authentication while using TLS server authentication. Implementers SHOULD implement the [SMART on FHIR IG](http://hl7.org/fhir/smart-app-launch/) for the corresponding use cases (patient-facing or provider-facing). The network communication security and user authentication are layered in the HTTP transport layer. ## 1:55.6 Scheduling Cross-Profile Considerations + The Scheduling Profile is intended to be used in varied settings and to satisfy multiple use cases. Some of these uses will benefit from using the Scheduling Profile together with other IHE profiles. The following cross-profile descriptions are not exclusive or exhaustive, and the list can be updated in the future. ### 1:55.6.1 mCSD - Mobile Care Services Discovery + When a patient needs to schedule an appointment outside their usual care providing environment, they could need to initially find the endpoint of the healthcare or service provider where an appointment can be requested. The [ITI-90 Find Matching Care Services](https://profiles.ihe.net/ITI/mCSD/ITI-90.html) transaction from the mCSD profile can be used for endpoint discovery prior to the use of the Find Appointments transaction. ### 1:55.6.2 360X - 360 Exchange Closed Loop Referral + The [360X Profile](https://www.ihe.net/uploadedFiles/Documents/PCC/IHE_PCC_Suppl_360X.pdf) describes cross-organizations referral workflows, and it has a scheduling option, which is not required. The ITI Scheduling Profile can be used instead of the 360X Scheduling Option when there are appropriate business agreements that allow cross-organizational scheduling. The referral and patient identifiers used in the 360X transactions must be used in the corresponding parameters of the Find Appointments transaction in order to provide the necessary link between the appointment and the referral. diff --git a/input/resources/StructureDefinition-iti-sched-bundle.xml b/input/resources/StructureDefinition-iti-sched-bundle.xml index cb46a9e..fbe7490 100644 --- a/input/resources/StructureDefinition-iti-sched-bundle.xml +++ b/input/resources/StructureDefinition-iti-sched-bundle.xml @@ -6,7 +6,7 @@ <status value="active"/> - <date value="2024-02-05"/> + <date value="2024-12-12"/> <publisher value="IHE ITI"/> <contact> <name value="IHE IT Infrastructure Technical Committee"/> diff --git a/input/resources/codesystem-status-reason.xml b/input/resources/codesystem-status-reason.xml index 6ff538d..3f4bc80 100644 --- a/input/resources/codesystem-status-reason.xml +++ b/input/resources/codesystem-status-reason.xml @@ -80,7 +80,7 @@ <concept> <code value="needs-tests"/> <display value="Patient Needs Tests"/> - <definition value="An appointment for a patient was cancelled by the patient because the patient did not have the prequisite diagnostic tests performed."/> + <definition value="An appointment for a patient was cancelled by the patient because the patient did not have the prerequisite diagnostic tests performed."/> </concept> <concept> <code value="new-provider"/> @@ -120,7 +120,7 @@ <concept> <code value="prep-incomplete"/> <display value="Preparatory Requirements or Medications Incomplete"/> - <definition value="An appointment for a patient was cancelled by the provider because needed preparatory insructions and/or medications not completed."/> + <definition value="An appointment for a patient was cancelled by the provider because needed preparatory instructions and/or medications not completed."/> </concept> <concept> <code value="prep-unavail"/> diff --git a/input/resources/operationdefinition-appointment-book.xml b/input/resources/operationdefinition-appointment-book.xml index 89804c0..a9ad71c 100644 --- a/input/resources/operationdefinition-appointment-book.xml +++ b/input/resources/operationdefinition-appointment-book.xml @@ -7,9 +7,9 @@ <!-- <title value="Appointment Availability Operation"/> --> <status value="active"/> <kind value="operation"/> - <date value="2024-02-05"/> + <date value="2024-12-12"/> <publisher value="IHE ITI"/> - <description value="Request to book a selected Appointment. This operation follows the appointment availability and optional hold interactions. This operaton completes the booking of an appointment. The server determines if the nominated appointment is still available (i.e., all the required actors and physical assets needed for the appointment are still available) and either accepts or rejects the book request and updates the resource status accordingly. In addition to the booking an appointment, this operation can also request to modify or cancel an existing appointment. ### Book a New Appointment When booking a new appoint, the operation SHALL have either an `appointment-reference` or an `appointment-resource` parameter. If the `appointment-resource` parameter is used, the value of `Appointment.status` SHALL have the value of `pending`. A successful new appointment `$book` operation returns an [IHE ITI Appointment](./StructureDefinition-ihe-sched-appt.html) resource with the the value of `Appointment.status` set to `booked`. ### Modify an Existing Appointment When requesting a modification of an existing appointment, the operation SHALL have an `appointment-resource` parameter and the value of `Appointment.status` SHALL have the value of `booked`. A successful request to modify an existing modification returns an [IHE ITI Appointment](./StructureDefinition-ihe-sched-appt.html) resource with the the value of `Appointment.status` set to `booked` and the changes that were requested correspondingly reflected in the resource. ### Cancel an Existing Appointment When requesting a cancelation of an existing appointment, the operation SHALL have an `appointment-resource` parameter and the value of `Appointment.status` SHALL have the value of `cancelled`. A successful request to cancel an existing modification returns an [IHE ITI Appointment](./StructureDefinition-ihe-sched-appt.html) resource with the the value of `Appointment.status` set to `cancelled` "/> + <description value="Request to book a selected Appointment. This operation follows the appointment availability and optional hold interactions. This operation completes the booking of an appointment. The server determines if the nominated appointment is still available (i.e., all the required actors and physical assets needed for the appointment are still available) and either accepts or rejects the book request and updates the resource status accordingly. In addition to the booking an appointment, this operation can also request to modify or cancel an existing appointment. ### Book a New Appointment When booking a new appoint, the operation SHALL have either an `appointment-reference` or an `appointment-resource` parameter. If the `appointment-resource` parameter is used, the value of `Appointment.status` SHALL have the value of `pending`. A successful new appointment `$book` operation returns an [IHE ITI Appointment](./StructureDefinition-ihe-sched-appt.html) resource with the the value of `Appointment.status` set to `booked`. ### Modify an Existing Appointment When requesting a modification of an existing appointment, the operation SHALL have an `appointment-resource` parameter and the value of `Appointment.status` SHALL have the value of `booked`. A successful request to modify an existing modification returns an [IHE ITI Appointment](./StructureDefinition-ihe-sched-appt.html) resource with the the value of `Appointment.status` set to `booked` and the changes that were requested correspondingly reflected in the resource. ### Cancel an Existing Appointment When requesting a cancellation of an existing appointment, the operation SHALL have an `appointment-resource` parameter and the value of `Appointment.status` SHALL have the value of `cancelled`. A successful request to cancel an existing modification returns an [IHE ITI Appointment](./StructureDefinition-ihe-sched-appt.html) resource with the the value of `Appointment.status` set to `cancelled` "/> <jurisdiction> <coding> <system value="http://unstats.un.org/unsd/methods/m49/m49.htm"/> @@ -39,7 +39,7 @@ <use value="in"/> <min value="0"/> <max value="1"/> - <documentation value="The full appointment resource is needed for appontment change requests"/> + <documentation value="The full appointment resource is needed for appointment change requests"/> <type value="Appointment"/> <targetProfile value="https://profiles.ihe.net/ITI/Scheduling/StructureDefinition/ihe-sched-appt" /> </parameter> @@ -48,16 +48,17 @@ <use value="in"/> <min value="0"/> <max value="*"/> - <documentation value="The Patient resource type is used to provide the patient information as known to the Schecduling client at the time of booking of the appointment."/> + <documentation value="The Patient resource type is used to provide the patient information as known to the Scheduling client at the time of booking of the appointment."/> <type value="Patient"/> - <targetProfile value="http://hl7.org/fhir/uv/ipa/StructureDefinition/ipa-patient"/> +<!-- <targetProfile value="http://hl7.org/fhir/uv/ipa/StructureDefinition/ipa-patient"/> --> + <targetProfile value="http://hl7.org/fhir/StructureDefinition/Patient" /> </parameter> <parameter> <name value="comment"/> <use value="in"/> <min value="0"/> <max value="1"/> - <documentation value="The optional comment can be added for additional notes that could be useful for booking, canceling, or modfying an appointment" /> + <documentation value="The optional comment can be added for additional notes that could be useful for booking, canceling, or modifying an appointment" /> <type value="string"/> </parameter> <parameter> @@ -65,7 +66,7 @@ <use value="out"/> <min value="0"/> <max value="1"/> - <documentation value="An [IHE ITI Scheduling Appointment Bundle Profile](StructureDefinition-ihe-sched-avail-bundle.html) of type `searchset` consisting of the requested booked Appointment resource and MAY also contain an OperationOutcome with errors, warnings or information as a result of processing the operation. The Appointment resource will have an updated `status` of "booked" if a new appointmet is booked or an existing appointment is modified, or status of "cancelled" if an appointment is cancelled or not created."/> + <documentation value="An [IHE ITI Scheduling Appointment Bundle Profile](StructureDefinition-ihe-sched-avail-bundle.html) of type `searchset` consisting of the requested booked Appointment resource and MAY also contain an OperationOutcome with errors, warnings or information as a result of processing the operation. The Appointment resource will have an updated `status` of "booked" if a new appointment is booked or an existing appointment is modified, or status of "cancelled" if an appointment is cancelled or not created."/> <type value="Bundle"/> <targetProfile value="https://profiles.ihe.net/ITI/Scheduling/StructureDefinition/ihe-sched-avail-bundle" /> </parameter> diff --git a/input/resources/operationdefinition-appointment-find.xml b/input/resources/operationdefinition-appointment-find.xml index 4e9818e..936d18c 100644 --- a/input/resources/operationdefinition-appointment-find.xml +++ b/input/resources/operationdefinition-appointment-find.xml @@ -7,7 +7,7 @@ <!-- <title value="Appointment Availability Operation"/> --> <status value="active"/> <kind value="operation"/> - <date value="2024-02-05"/> + <date value="2024-12-12"/> <publisher value="IHE ITI"/> <description value="Searches for availability for a future appointment(s) within a time period of defined by date range input parameters. If neither a start or end date is given then the maximum period as defined by local business rules and starting from when the operation was transacted will be used. Other input parameters further refine the search and include practitioner references, specialties, visit type, locations, patient and referral information. From these criteria, a system determines which schedulable resources ( e.g., people, rooms, equipment) are needed for the visit, and provides proposed appointments for the time slots where all required resources are available."/> <jurisdiction> @@ -75,7 +75,8 @@ <max value="*"/> <documentation value="The Practitioner reference when performing a provider based query. This is a reference to a FHIR Practitioner resource, e.g. 'Practitioner/123'. If multiple practitioner references are listed, the order will interpreted as the order of preference. The response will contain appointments with any of these actors (i.e. this does not drive joint appointment with multiple actors)."/> <type value="Reference"/> - <targetProfile value="http://hl7.org/fhir/uv/ipa/StructureDefinition/ipa-practitioner" /> +<!-- <targetProfile value="http://hl7.org/fhir/uv/ipa/StructureDefinition/ipa-practitioner" /> --> + <targetProfile value="http://hl7.org/fhir/StructureDefinition/Practitioner" /> </parameter> <parameter> <name value="organization"/> @@ -109,18 +110,20 @@ <use value="in"/> <min value="0"/> <max value="*"/> - <documentation value="A Patient reference when performing an operation where the Patient resource `id` is known. Patient resources include demographics and patient preferences that could be important for availaiblilty searches. If multiple patient references are listed, the response will contain appointments which is joint match for all patients - i.e., a group appointment."/> + <documentation value="A Patient reference when performing an operation where the Patient resource `id` is known. Patient resources include demographics and patient preferences that could be important for availability searches. If multiple patient references are listed, the response will contain appointments which is joint match for all patients - i.e., a group appointment."/> <type value="Reference"/> - <targetProfile value="http://hl7.org/fhir/uv/ipa/StructureDefinition/ipa-patient" /> +<!-- <targetProfile value="http://hl7.org/fhir/uv/ipa/StructureDefinition/ipa-patient"/> --> + <targetProfile value="http://hl7.org/fhir/StructureDefinition/Patient" /> </parameter> <parameter> <name value="patient-resource"/> <use value="in"/> <min value="0"/> <max value="*"/> - <documentation value="This parameter uses the Patient resource type instead of a simple reference because it is possible for the patient record to not exist when performing availablity searches. (If the Patient resource id is known, use the `patient-reference` parameter instead.) It is based on the [IPA Patient Profile](http://hl7.org/fhir/uv/ipa/StructureDefinition/ipa-patient) and includes demographics and patient preferences that could be important for availaiblilty searches. If the appointment is for a new patient, the patient record SHOULD NOT be created until just before booking an appointment. If multiple patient resources are listed, the response will contain appointments which is joint match for all patients - i.e., a group appointment."/> + <documentation value="This parameter uses the Patient resource type instead of a simple reference because it is possible for the patient record to not exist when performing availability searches. (If the Patient resource id is known, use the `patient-reference` parameter instead.) If the appointment is for a new patient, the patient record SHOULD NOT be created until just before booking an appointment. If multiple patient resources are listed, the response will contain appointments which is joint match for all patients - i.e., a group appointment."/> <type value="Patient"/> - <targetProfile value="http://hl7.org/fhir/uv/ipa/StructureDefinition/ipa-patient"/> +<!-- <targetProfile value="http://hl7.org/fhir/uv/ipa/StructureDefinition/ipa-patient"/> --> + <targetProfile value="http://hl7.org/fhir/StructureDefinition/Patient" /> </parameter> <parameter> <name value="reason"/> diff --git a/input/resources/operationdefinition-appointment-hold.xml b/input/resources/operationdefinition-appointment-hold.xml index 2b7b519..ee1b04f 100644 --- a/input/resources/operationdefinition-appointment-hold.xml +++ b/input/resources/operationdefinition-appointment-hold.xml @@ -7,7 +7,7 @@ <!-- <title value="Appointment Availability Operation"/> --> <status value="active"/> <kind value="operation"/> - <date value="2024-02-05"/> + <date value="2024-12-12"/> <publisher value="IHE ITI"/> <description value="Request for a hold on a selected Appointment in order for the user to complete entering data for booking an appointment. This operation precedes the booking and follows the appointment availability interaction. The server determines if the nominated appointment is still available (i.e., all the required actors and physical assets needed for the appointment are still available) and either accepts or rejects the hold request and updates the resource status accordingly. "/> <jurisdiction> diff --git a/publication-request.json b/publication-request.json index afa62b2..8edea86 100644 --- a/publication-request.json +++ b/publication-request.json @@ -5,6 +5,7 @@ "mode" : "milestone", "status" : "trial-use", "sequence" : "Publication", + "changes" : "issues.html", "desc" : "Trial Implementation of the IHE FHIR Scheduling Profile", "descmd" : "The IHE FHIR Scheduling Profile is a specification providing FHIR APIs and guidance for access to and booking of appointments for patients by both patient and practitioner end users. This specification is based on FHIR Version 4 and specifically the Schedule, Slot, and Appointment resources, and on the previous work of the [Argonaut Project](https://fhir.org/guides/argonaut/scheduling/release1/)", "first" : false diff --git a/sushi-config.yaml b/sushi-config.yaml index a44ea58..9b2742b 100644 --- a/sushi-config.yaml +++ b/sushi-config.yaml @@ -4,14 +4,14 @@ # e.g. ihe.iti.mhds, or ihe.iti.basicaudit id: ihe.iti.scheduling canonical: https://profiles.ihe.net/ITI/Scheduling -version: 1.0.0-current +version: 1.0.0 name: IHE_ITI_Scheduling title: "Scheduling" description: The IHE FHIR Scheduling Profile is a specification providing FHIR APIs and guidance for access to and booking of appointments for patients by both patient and practitioner end users. This specification is based on FHIR Version 4 and specifically the Schedule, Slot, and Appointment resources, and on the previous work of the [Argonaut Project](https://fhir.org/guides/argonaut/scheduling/release1/). -releaseLabel: ci-build +#releaseLabel: ci-build #releaseLabel: ballot -#releaseLabel: Trial-Implementation -#date: 2024-08-13 +releaseLabel: Trial-Implementation +date: 2024-12-12 status: active publisher: - name: IHE IT Infrastructure Technical Committee @@ -25,7 +25,7 @@ contact: license: CC-BY-4.0 fhirVersion: 4.0.1 dependencies: - hl7.fhir.uv.ipa: 1.0.0 +# hl7.fhir.uv.ipa: 1.0.0 ihe.iti.balp: id: iheitibasicaudit uri: https://profiles.ihe.net/ITI/BALP/ImplementationGuide/ihe.iti.balp