diff --git a/.gitignore b/.gitignore index 524f0963b..7c02f1f67 100644 --- a/.gitignore +++ b/.gitignore @@ -22,3 +22,10 @@ # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml hs_err_pid* replay_pid* + +# Mac configuration file +.DS_Store + +# Ballerina +target/ +Config.toml diff --git a/schedule-appointment-process-API/Davinci_Coverage_Demo_app b/schedule-appointment-process-API/Davinci_Coverage_Demo_app new file mode 160000 index 000000000..b2378b456 --- /dev/null +++ b/schedule-appointment-process-API/Davinci_Coverage_Demo_app @@ -0,0 +1 @@ +Subproject commit b2378b456e14b667b1e178999bbe28f5e4c0f738 diff --git a/schedule-appointment-process-API/README.md b/schedule-appointment-process-API/README.md new file mode 100644 index 000000000..7ec49afbc --- /dev/null +++ b/schedule-appointment-process-API/README.md @@ -0,0 +1,96 @@ +# Use case: Schedule an Appointment + +In today’s healthcare ecosystem, practitioner information, including their schedules and available appointment slots, is often distributed across multiple Electronic Medical Record (EMR) systems. This use case outlines how appointment scheduling can be efficiently handled by aggregating data from Cerner. This allows patients to seamlessly search for healthcare practitioners, view available time slots, and book appointments—all from a single platform. + +## The Scenario Overview +### Day-to-Day Scenario - Patient’s Journey + +**Morning Health Concern:** +Glen, a 45-year-old, experiences mild chest pain in the morning. Concerned, he decides to book an appointment with the well-known cardiologist Dr. Christina Applegate. Instead of calling different hospitals to find the availability of the doctor, Glen opens the Channeling web app in the Browser. + +**Log In:** +Glen logs into the web app with his username and password. The app authenticates him using an integrated identity access management (IAM) system, providing a secure session. + +**Searching for a Practitioner:** +Glen enters ‘Dr. Christina Applegate’ in the app’s search bar. The app sends this search request to the backend system (Aggregate-backend), which aggregates data from multiple EMR Systems. +Reviewing Doctor’s Availability: Within seconds, the app returns a list of Dr. Christina Applegate's available sessions at different locations. + +**Choosing a Time Slot:** +Glen sees that Dr. Christina Applegate has an opening at CDEM Colombo on October 10th, 2024, from 4:00 PM to 4:30 PM. Since this time slot is convenient for him, he selects it. + +**Booking the Appointment:** +Glen confirms his selection, and the app creates an appointment by sending a request to the Aggregate-backend. This request is forwarded to the relevant EMR system to reserve the slot. The system marks the chosen slot as busy, ensuring no one else can book it. + +**Appointment Confirmation:** +Shortly after, Glen receives a confirmation notification within the web app, stating that his appointment with Dr. Christina Applegate is scheduled at CDEM Colombo. The appointment details include the time, date, location, and the doctor's name. + +**Peace of Mind:** +Glen feels reassured knowing he has an appointment with a cardiologist. He goes about his day, confident that he will soon receive medical care. + +## Running the App +1. Setup and run the [Aggregate-Backend](aggregate-service/Readme.md) +1. Navigate to the directory, 'Davinci_Coverage_Demo_app' +2. Execute the following command. +``` +npm run dev +``` +3. Navigate to http://localhost:5173 in your web browser. +4. Select the patient from the dropdown. +5. Once the patient is selected and clik on 'Treat Patient', you will be navigated to http://localhost:5173/dashboard +6. Click on 'Book an Appointment' +7. Search for a doctor using doctor's first and last name. Provide 'Christina' as the first name and 'Applegate' as the last name and click on 'Search Doctor' button. Then you can continue the scenario. + + + +## Behind the Scenes - Healthcare Provider’s Perspective + +![Appointment Booking Scenario](img/appointment-booking.png) + +1. Doctor Search Request (Web App → Aggregate Backend API) + + - The user, Glen, enters the doctor's first and last name (e.g., "Christina Applegate") in the search bar of the web app. + The app sends a search request to the Aggregate Backend API, which forwards the request to multiple connected EMR systems, querying each EMR's FHIR-compliant API to find matching practitioners. + + - Example query: + ``` + GET Practitioner?given=Christina&family=Applegate + ``` + - Each EMR system responds with relevant practitioner details, such as name and unique practitioner ID. + The web app displays a list of matching doctors (if multiple exist) to Glen, allowing him to select the intended practitioner. + +2. Fetching Doctor’s Availability (Web App → Aggregate Backend API → EMR Systems): + + - After selecting Dr. Christina Applegate from the search results, Glen chooses a desired appointment date and clicks "Check Availability." + - The web app sends this request to the Aggregate Backend API with the selected date and practitioner ID. + - The Aggregate Backend API constructs and sends a FHIR-compliant Slot query to each EMR system for the selected date, requesting available slots for Dr. Applegate. + - Example query: + ``` + GET Slot?serviceType=consultation&start=ge2024-11-10T06:00:00&start=lt2024-11-10T23:00:00&practitioner={practitionerId} + ``` + - Each EMR system returns a list of available time slots, including location details. + - The Aggregate Backend consolidates the responses from multiple EMR systems and returns a unified list of available time slots to the web app. + - The web app displays these slots to Glen in a user-friendly format. + +3. Displaying Available Slots (Web App) + + - Glen sees a list of available time slots for Dr. Christina Applegate, along with the respective location details. + - Each slot card displays the start time, end time, and location, allowing Glen to easily view and select his preferred slot. + +4. Selecting a Time Slot and Appointment Creation (Web App → Aggregate Backend API → EMR System): + - Glen selects a specific time slot (e.g., 4:00 PM to 4:30 PM at "Model Hospital"). + - The app packages this selection as a JSON FHIR Appointment payload, including: + ``` + Start Time and End Time: Selected appointment time + Location Reference: Hospital or clinic location + Patient Reference: Glen’s patient ID + Slot Reference: Selected slot ID + ``` + - The app sends this JSON payload to the Aggregate Backend API, which forwards it to the appropriate EMR system to create the appointment. + +5. Appointment Confirmation (EMR System → Aggregate Backend API → Web App) + - The EMR system processes the appointment request, verifies slot availability, and confirms the booking by returning a successful status. + - The Aggregate Backend API relays this confirmation to the web app, which displays a success message to Glen. + - Glen receives an appointment receipt, confirming his scheduled session with Dr. Christina Applegate, including all relevant details (date, time, location). + + + diff --git a/schedule-appointment-process-API/aggregate-service/.choreo/endpoints.yaml b/schedule-appointment-process-API/aggregate-service/.choreo/endpoints.yaml new file mode 100644 index 000000000..6b2476ade --- /dev/null +++ b/schedule-appointment-process-API/aggregate-service/.choreo/endpoints.yaml @@ -0,0 +1,29 @@ +# +required Version of the endpoint configuration YAML +version: 0.1 + +# +required List of endpoints to create +endpoints: +- name: Cerner FHIR Practitioner API + port: 8081 + type: REST + networkVisibility: Public + context: / + schemaFilePath: oas/PractitionerAPI.yaml +- name: Cerner FHIR Slot API + port: 8082 + type: REST + networkVisibility: Public + context: / + schemaFilePath: oas/SlotAPI.yaml +- name: Cerner FHIR Location API + port: 8084 + type: REST + networkVisibility: Public + context: / + schemaFilePath: oas/LocationAPI.yaml +- name: Cerner FHIR Appointment API + port: 8083 + type: REST + networkVisibility: Public + context: / + schemaFilePath: oas/AppointmentAPI.yaml diff --git a/schedule-appointment-process-API/aggregate-service/.devcontainer.json b/schedule-appointment-process-API/aggregate-service/.devcontainer.json new file mode 100644 index 000000000..099816a20 --- /dev/null +++ b/schedule-appointment-process-API/aggregate-service/.devcontainer.json @@ -0,0 +1,4 @@ +{ + "image": "ballerina/ballerina-devcontainer:2201.8.5", + "extensions": ["WSO2.ballerina"], +} diff --git a/schedule-appointment-process-API/aggregate-service/Ballerina.toml b/schedule-appointment-process-API/aggregate-service/Ballerina.toml new file mode 100644 index 000000000..5bc932973 --- /dev/null +++ b/schedule-appointment-process-API/aggregate-service/Ballerina.toml @@ -0,0 +1,8 @@ +[package] +org = "isuruuy" +name = "aggregate_service" +version = "0.1.0" +distribution = "2201.8.5" + +[build-options] +observabilityIncluded = true diff --git a/schedule-appointment-process-API/aggregate-service/Dependencies.toml b/schedule-appointment-process-API/aggregate-service/Dependencies.toml new file mode 100644 index 000000000..1837af3ff --- /dev/null +++ b/schedule-appointment-process-API/aggregate-service/Dependencies.toml @@ -0,0 +1,399 @@ +# AUTO-GENERATED FILE. DO NOT MODIFY. + +# This file is auto-generated by Ballerina for managing dependency versions. +# It should not be modified by hand. + +[ballerina] +dependencies-toml-version = "2" +distribution-version = "2201.8.8" + +[[package]] +org = "ballerina" +name = "auth" +version = "2.10.0" +dependencies = [ + {org = "ballerina", name = "crypto"}, + {org = "ballerina", name = "jballerina.java"}, + {org = "ballerina", name = "lang.array"}, + {org = "ballerina", name = "lang.string"}, + {org = "ballerina", name = "log"} +] + +[[package]] +org = "ballerina" +name = "cache" +version = "3.8.0" +dependencies = [ + {org = "ballerina", name = "constraint"}, + {org = "ballerina", name = "jballerina.java"}, + {org = "ballerina", name = "task"}, + {org = "ballerina", name = "time"} +] + +[[package]] +org = "ballerina" +name = "constraint" +version = "1.5.0" +dependencies = [ + {org = "ballerina", name = "jballerina.java"} +] + +[[package]] +org = "ballerina" +name = "crypto" +version = "2.6.3" +dependencies = [ + {org = "ballerina", name = "jballerina.java"}, + {org = "ballerina", name = "time"} +] + +[[package]] +org = "ballerina" +name = "file" +version = "1.9.0" +dependencies = [ + {org = "ballerina", name = "io"}, + {org = "ballerina", name = "jballerina.java"}, + {org = "ballerina", name = "os"}, + {org = "ballerina", name = "time"} +] + +[[package]] +org = "ballerina" +name = "http" +version = "2.10.17" +dependencies = [ + {org = "ballerina", name = "auth"}, + {org = "ballerina", name = "cache"}, + {org = "ballerina", name = "constraint"}, + {org = "ballerina", name = "crypto"}, + {org = "ballerina", name = "file"}, + {org = "ballerina", name = "io"}, + {org = "ballerina", name = "jballerina.java"}, + {org = "ballerina", name = "jwt"}, + {org = "ballerina", name = "lang.array"}, + {org = "ballerina", name = "lang.decimal"}, + {org = "ballerina", name = "lang.int"}, + {org = "ballerina", name = "lang.regexp"}, + {org = "ballerina", name = "lang.runtime"}, + {org = "ballerina", name = "lang.string"}, + {org = "ballerina", name = "lang.value"}, + {org = "ballerina", name = "log"}, + {org = "ballerina", name = "mime"}, + {org = "ballerina", name = "oauth2"}, + {org = "ballerina", name = "observe"}, + {org = "ballerina", name = "time"}, + {org = "ballerina", name = "url"} +] + +[[package]] +org = "ballerina" +name = "io" +version = "1.6.1" +dependencies = [ + {org = "ballerina", name = "jballerina.java"}, + {org = "ballerina", name = "lang.value"} +] + +[[package]] +org = "ballerina" +name = "jballerina.java" +version = "0.0.0" + +[[package]] +org = "ballerina" +name = "jwt" +version = "2.10.0" +dependencies = [ + {org = "ballerina", name = "cache"}, + {org = "ballerina", name = "crypto"}, + {org = "ballerina", name = "jballerina.java"}, + {org = "ballerina", name = "lang.int"}, + {org = "ballerina", name = "lang.string"}, + {org = "ballerina", name = "log"}, + {org = "ballerina", name = "time"} +] + +[[package]] +org = "ballerina" +name = "lang.__internal" +version = "0.0.0" +dependencies = [ + {org = "ballerina", name = "jballerina.java"}, + {org = "ballerina", name = "lang.object"} +] + +[[package]] +org = "ballerina" +name = "lang.array" +version = "0.0.0" +dependencies = [ + {org = "ballerina", name = "jballerina.java"}, + {org = "ballerina", name = "lang.__internal"} +] + +[[package]] +org = "ballerina" +name = "lang.decimal" +version = "0.0.0" +dependencies = [ + {org = "ballerina", name = "jballerina.java"} +] + +[[package]] +org = "ballerina" +name = "lang.int" +version = "0.0.0" +dependencies = [ + {org = "ballerina", name = "jballerina.java"}, + {org = "ballerina", name = "lang.__internal"}, + {org = "ballerina", name = "lang.object"} +] + +[[package]] +org = "ballerina" +name = "lang.object" +version = "0.0.0" + +[[package]] +org = "ballerina" +name = "lang.regexp" +version = "0.0.0" +dependencies = [ + {org = "ballerina", name = "jballerina.java"} +] + +[[package]] +org = "ballerina" +name = "lang.runtime" +version = "0.0.0" +dependencies = [ + {org = "ballerina", name = "jballerina.java"} +] + +[[package]] +org = "ballerina" +name = "lang.string" +version = "0.0.0" +dependencies = [ + {org = "ballerina", name = "jballerina.java"}, + {org = "ballerina", name = "lang.regexp"} +] + +[[package]] +org = "ballerina" +name = "lang.value" +version = "0.0.0" +dependencies = [ + {org = "ballerina", name = "jballerina.java"} +] + +[[package]] +org = "ballerina" +name = "log" +version = "2.9.0" +dependencies = [ + {org = "ballerina", name = "io"}, + {org = "ballerina", name = "jballerina.java"}, + {org = "ballerina", name = "lang.value"}, + {org = "ballerina", name = "observe"} +] + +[[package]] +org = "ballerina" +name = "mime" +version = "2.9.0" +dependencies = [ + {org = "ballerina", name = "io"}, + {org = "ballerina", name = "jballerina.java"}, + {org = "ballerina", name = "lang.int"} +] + +[[package]] +org = "ballerina" +name = "oauth2" +version = "2.10.0" +dependencies = [ + {org = "ballerina", name = "cache"}, + {org = "ballerina", name = "crypto"}, + {org = "ballerina", name = "jballerina.java"}, + {org = "ballerina", name = "log"}, + {org = "ballerina", name = "time"}, + {org = "ballerina", name = "url"} +] + +[[package]] +org = "ballerina" +name = "observe" +version = "1.2.3" +dependencies = [ + {org = "ballerina", name = "jballerina.java"} +] + +[[package]] +org = "ballerina" +name = "os" +version = "1.8.0" +dependencies = [ + {org = "ballerina", name = "io"}, + {org = "ballerina", name = "jballerina.java"} +] + +[[package]] +org = "ballerina" +name = "task" +version = "2.5.0" +dependencies = [ + {org = "ballerina", name = "jballerina.java"}, + {org = "ballerina", name = "time"} +] + +[[package]] +org = "ballerina" +name = "time" +version = "2.5.0" +dependencies = [ + {org = "ballerina", name = "jballerina.java"} +] + +[[package]] +org = "ballerina" +name = "url" +version = "2.4.0" +dependencies = [ + {org = "ballerina", name = "jballerina.java"} +] + +[[package]] +org = "ballerina" +name = "uuid" +version = "1.7.0" +dependencies = [ + {org = "ballerina", name = "crypto"}, + {org = "ballerina", name = "jballerina.java"}, + {org = "ballerina", name = "lang.int"}, + {org = "ballerina", name = "time"} +] + +[[package]] +org = "ballerinai" +name = "observe" +version = "0.0.0" +dependencies = [ + {org = "ballerina", name = "jballerina.java"}, + {org = "ballerina", name = "observe"} +] +modules = [ + {org = "ballerinai", packageName = "observe", moduleName = "observe"} +] + +[[package]] +org = "ballerinax" +name = "health.base" +version = "1.0.3" +dependencies = [ + {org = "ballerina", name = "http"}, + {org = "ballerina", name = "io"}, + {org = "ballerina", name = "jwt"}, + {org = "ballerina", name = "log"}, + {org = "ballerina", name = "mime"}, + {org = "ballerina", name = "time"}, + {org = "ballerina", name = "uuid"} +] + +[[package]] +org = "ballerinax" +name = "health.clients.fhir" +version = "2.0.0" +dependencies = [ + {org = "ballerina", name = "http"}, + {org = "ballerina", name = "io"}, + {org = "ballerina", name = "log"}, + {org = "ballerina", name = "url"}, + {org = "ballerinai", name = "observe"}, + {org = "ballerinax", name = "health.base"} +] +modules = [ + {org = "ballerinax", packageName = "health.clients.fhir", moduleName = "health.clients.fhir"} +] + +[[package]] +org = "ballerinax" +name = "health.fhir.r4" +version = "5.1.1" +dependencies = [ + {org = "ballerina", name = "constraint"}, + {org = "ballerina", name = "http"}, + {org = "ballerina", name = "io"}, + {org = "ballerina", name = "jwt"}, + {org = "ballerina", name = "lang.regexp"}, + {org = "ballerina", name = "lang.value"}, + {org = "ballerina", name = "log"}, + {org = "ballerina", name = "time"}, + {org = "ballerina", name = "url"}, + {org = "ballerina", name = "uuid"}, + {org = "ballerinax", name = "health.base"} +] +modules = [ + {org = "ballerinax", packageName = "health.fhir.r4", moduleName = "health.fhir.r4"} +] + +[[package]] +org = "ballerinax" +name = "health.fhir.r4.international401" +version = "2.1.1" +dependencies = [ + {org = "ballerina", name = "constraint"}, + {org = "ballerina", name = "log"}, + {org = "ballerinax", name = "health.fhir.r4"} +] +modules = [ + {org = "ballerinax", packageName = "health.fhir.r4.international401", moduleName = "health.fhir.r4.international401"} +] + +[[package]] +org = "ballerinax" +name = "health.fhir.r4.parser" +version = "5.1.0" +dependencies = [ + {org = "ballerina", name = "http"}, + {org = "ballerina", name = "log"}, + {org = "ballerinax", name = "health.fhir.r4"}, + {org = "ballerinax", name = "health.fhir.r4.international401"} +] + +[[package]] +org = "ballerinax" +name = "health.fhirr4" +version = "1.3.5" +dependencies = [ + {org = "ballerina", name = "http"}, + {org = "ballerina", name = "io"}, + {org = "ballerina", name = "jballerina.java"}, + {org = "ballerina", name = "jwt"}, + {org = "ballerina", name = "lang.regexp"}, + {org = "ballerina", name = "log"}, + {org = "ballerinai", name = "observe"}, + {org = "ballerinax", name = "health.fhir.r4"}, + {org = "ballerinax", name = "health.fhir.r4.international401"}, + {org = "ballerinax", name = "health.fhir.r4.parser"} +] +modules = [ + {org = "ballerinax", packageName = "health.fhirr4", moduleName = "health.fhirr4"} +] + +[[package]] +org = "isuruuy" +name = "aggregate_service" +version = "0.1.0" +dependencies = [ + {org = "ballerinai", name = "observe"}, + {org = "ballerinax", name = "health.clients.fhir"}, + {org = "ballerinax", name = "health.fhir.r4"}, + {org = "ballerinax", name = "health.fhir.r4.international401"}, + {org = "ballerinax", name = "health.fhirr4"} +] +modules = [ + {org = "isuruuy", packageName = "aggregate_service", moduleName = "aggregate_service"} +] + diff --git a/schedule-appointment-process-API/aggregate-service/Readme.md b/schedule-appointment-process-API/aggregate-service/Readme.md new file mode 100644 index 000000000..563cc8f4a --- /dev/null +++ b/schedule-appointment-process-API/aggregate-service/Readme.md @@ -0,0 +1,95 @@ +# Aggregate Backend Overview +The Aggregate Backend interacts with Cerner's Pre-Built services, enabling streamlined access to essential healthcare functionalities. We can follow the below steps to run the setup locally. + +## Services Provided by Aggregate Backend +The Aggregate Backend API offers the following functionalities: + +- Practitioner Search: Retrieve practitioner details using their first and last names. +- Slot Search: Find available appointment slots for a specific day and practitioner. +- Location Lookup: Retrieve location details using the location's unique ID. +- Appointment Creation: Create a new appointment resource with the specified details. + +## Prerequisites +1. Clone [open-healthcare-prebuilt-services repository](https://github.com/wso2/open-healthcare-prebuilt-services) +2. Navigate to /ehr-connectivity/cerner-fhirr4-administration-api-service +3. Create Config.toml file and your Cerner configurations as below. +``` +baseServerHost = "http://localhost:9090" +cernerUrl = "https://fhir-ehr-code.cerner.com/r4/ec2458f2-1e24-41c8-b71b-0e701af7583d" +tokenUrl = "https://authorization.cerner.com/tenants/ec2458f2-1e24-41c8-b71b-0e701af7583d/protocols/oauth2/profiles/smart-v1/token" +clientId = "" +clientSecret = "" +scopes = ["system/Practitioner.read", "system/Practitioner.write", "system/Location.read"] +``` +4. Run the Ballerina service +``` +bal run +``` +5. Test the service by executing the following command to search a Practitioner. +``` +curl --location 'http://localhost:9092/fhir/r4/Practitioner?family=Applegate&given=Christina' +``` + +6. Now navigate to cerner-fhirr4-workflow-api-service directory and add the Config.toml. +``` +baseServerHost = "http://localhost:9090" +cernerUrl = "https://fhir-ehr-code.cerner.com/r4/ec2458f2-1e24-41c8-b71b-0e701af7583d" +tokenUrl = "https://authorization.cerner.com/tenants/ec2458f2-1e24-41c8-b71b-0e701af7583d/protocols/oauth2/profiles/smart-v1/token" +clientId = "" +clientSecret = "" +scopes = ["system/Appointment.read", "system/Appointment.write", "system/Schedule.read", "system/Slot.read", "system/Slot.write"] +``` + +7. You can test the service by executing the following command. +``` +curl --location 'http://localhost:9098/fhir/r4/Slot?service-type=https%3A%2F%2Ffhir.cerner.com%2Fec2458f2-1e24-41c8-b71b-0e701af7583d%2FcodeSet%2F14249%7C4047611&start=ge2023-01-14T06%3A00%3A00Z&start=lt2024-01-15T23%3A00%3A00Z&practitioner=593923&_count=5' +``` + +## Steps to run the Aggregate backend. +1. Navigate to the Ballerina project home and run the service +``` +bal run -- -Cballerina.http.traceLogConsole=true +``` + +2. Test the service by invoking the following command. + +- Search a Practitioner with given name and family name. +``` +curl --location 'http://localhost:8081/fhir/r4/Practitioner?family=Applegate&given=Christina' +``` + +- Search slots for a given date of a particular Practitioner. +``` +curl --location 'http://localhost:8082/fhir/r4/Slot?startDate=2024-12-24&practitioner=593923' +``` + +- Retrive location by its id. +``` +http://localhost:8084/fhir/r4/Location/32216049 +``` + +- Create an Appointment +``` +curl --location 'http://localhost:8083/fhir/r4/Appointment' \ +--header 'Content-Type: application/fhir+json' \ +--data '{ + "resourceType": "Appointment", + "status": "booked", + "slot": [ + { + "reference": "Slot/4047611-25442717-65876882-45" + } + ], + "start": "2024-12-24T06:45:00Z", + "end": "2024-12-24T07:45:00Z", + "participant": [ + { + "actor": { + "reference": "Patient/12724066" + }, + "status": "accepted" + } + ] +}' +``` +Please note that once an Appointment is created for a given Slot ID, it cannot be reused. You need to find a new Slot ID and provide its start and end date to the payload. \ No newline at end of file diff --git a/schedule-appointment-process-API/aggregate-service/appointment_api_config.bal b/schedule-appointment-process-API/aggregate-service/appointment_api_config.bal new file mode 100644 index 000000000..e627e32c0 --- /dev/null +++ b/schedule-appointment-process-API/aggregate-service/appointment_api_config.bal @@ -0,0 +1,186 @@ +// Copyright (c) 2023, WSO2 LLC. (http://www.wso2.com). All Rights Reserved. + +// This software is the property of WSO2 LLC. and its suppliers, if any. +// Dissemination of any information or reproduction of any material contained +// herein is strictly forbidden, unless permitted by WSO2 in accordance with +// the WSO2 Software License available at: https://wso2.com/licenses/eula/3.2 +// For specific language governing the permissions and limitations under +// this license, please see the license as well as any agreement you’ve +// entered into with WSO2 governing the purchase of this software and any +// associated services. +// +// +// AUTO-GENERATED FILE. DO NOT MODIFY. +// +// This file is auto-generated by WSO2 Healthcare Team for managing utility functions. +// Developers are allowed modify this file as per the requirement. + +import ballerinax/health.fhir.r4; + +final r4:ResourceAPIConfig appointmentApiConfig = { + resourceType: "Appointment", + profiles: [ + "http://hl7.org/fhir/StructureDefinition/Appointment" + ], + defaultProfile: (), + searchParameters: [ + { + name: "specialty", + active: true, + information: { + description: "The specialty of a practitioner that would be required to perform the service requested in this appointment", + builtin: false, + documentation: "http://hl7.org/fhir/SearchParameter/Appointment-specialty" + } + }, + { + name: "supporting-info", + active: true, + information: { + description: "Additional information to support the appointment", + builtin: false, + documentation: "http://hl7.org/fhir/SearchParameter/Appointment-supporting-info" + } + }, + { + name: "practitioner", + active: true, + information: { + description: "One of the individuals of the appointment is this practitioner", + builtin: false, + documentation: "http://hl7.org/fhir/SearchParameter/Appointment-practitioner" + } + }, + { + name: "service-type", + active: true, + information: { + description: "The specific service that is to be performed during this appointment", + builtin: false, + documentation: "http://hl7.org/fhir/SearchParameter/Appointment-service-type" + } + }, + { + name: "reason-reference", + active: true, + information: { + description: "Reason the appointment is to take place (resource)", + builtin: false, + documentation: "http://hl7.org/fhir/SearchParameter/Appointment-reason-reference" + } + }, + { + name: "part-status", + active: true, + information: { + description: "The Participation status of the subject, or other participant on the appointment. Can be used to locate participants that have not responded to meeting requests.", + builtin: false, + documentation: "http://hl7.org/fhir/SearchParameter/Appointment-part-status" + } + }, + { + name: "location", + active: true, + information: { + description: "This location is listed in the participants of the appointment", + builtin: false, + documentation: "http://hl7.org/fhir/SearchParameter/Appointment-location" + } + }, + { + name: "appointment-type", + active: true, + information: { + description: "The style of appointment or patient that has been booked in the slot (not service type)", + builtin: false, + documentation: "http://hl7.org/fhir/SearchParameter/Appointment-appointment-type" + } + }, + { + name: "patient", + active: true, + information: { + description: "One of the individuals of the appointment is this patient", + builtin: false, + documentation: "http://hl7.org/fhir/SearchParameter/Appointment-patient" + } + }, + { + name: "date", + active: true, + information: { + description: "Appointment date/time.", + builtin: false, + documentation: "http://hl7.org/fhir/SearchParameter/Appointment-date" + } + }, + { + name: "actor", + active: true, + information: { + description: "Any one of the individuals participating in the appointment", + builtin: false, + documentation: "http://hl7.org/fhir/SearchParameter/Appointment-actor" + } + }, + { + name: "slot", + active: true, + information: { + description: "The slots that this appointment is filling", + builtin: false, + documentation: "http://hl7.org/fhir/SearchParameter/Appointment-slot" + } + }, + { + name: "based-on", + active: true, + information: { + description: "The service request this appointment is allocated to assess", + builtin: false, + documentation: "http://hl7.org/fhir/SearchParameter/Appointment-based-on" + } + }, + { + name: "identifier", + active: true, + information: { + description: "An Identifier of the Appointment", + builtin: false, + documentation: "http://hl7.org/fhir/SearchParameter/Appointment-identifier" + } + }, + { + name: "service-category", + active: true, + information: { + description: "A broad categorization of the service that is to be performed during this appointment", + builtin: false, + documentation: "http://hl7.org/fhir/SearchParameter/Appointment-service-category" + } + }, + { + name: "status", + active: true, + information: { + description: "The overall status of the appointment", + builtin: false, + documentation: "http://hl7.org/fhir/SearchParameter/Appointment-status" + } + }, + { + name: "reason-code", + active: true, + information: { + description: "Coded reason this appointment is scheduled", + builtin: false, + documentation: "http://hl7.org/fhir/SearchParameter/Appointment-reason-code" + } + } + ], + operations: [ + + ], + serverConfig: (), + authzConfig: () +}; diff --git a/schedule-appointment-process-API/aggregate-service/location_api_config.bal b/schedule-appointment-process-API/aggregate-service/location_api_config.bal new file mode 100644 index 000000000..1771207ac --- /dev/null +++ b/schedule-appointment-process-API/aggregate-service/location_api_config.bal @@ -0,0 +1,168 @@ +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). All Rights Reserved. + +// This software is the property of WSO2 LLC. and its suppliers, if any. +// Dissemination of any information or reproduction of any material contained +// herein is strictly forbidden, unless permitted by WSO2 in accordance with +// the WSO2 Software License available at: https://wso2.com/licenses/eula/3.2 +// For specific language governing the permissions and limitations under +// this license, please see the license as well as any agreement you’ve +// entered into with WSO2 governing the purchase of this software and any +// associated services. +// +// +// AUTO-GENERATED FILE. +// +// This file is auto-generated by Ballerina. +// Developers are allowed to modify this file as per the requirement. + +import ballerinax/health.fhir.r4; + +final r4:ResourceAPIConfig locationApiConfig = { + resourceType: "Location", + profiles: [ + "http://hl7.org/fhir/StructureDefinition/Location" + ], + defaultProfile: (), + searchParameters: [ + { + name: "partof", + active: true, + information: { + description: "A location of which this location is a part", + builtin: false, + documentation: "http://hl7.org/fhir/SearchParameter/Location-partof" + } + }, + { + name: "organization", + active: true, + information: { + description: "Searches for locations that are managed by the provided organization", + builtin: false, + documentation: "http://hl7.org/fhir/SearchParameter/Location-organization" + } + }, + { + name: "address-country", + active: true, + information: { + description: "A country specified in an address", + builtin: false, + documentation: "http://hl7.org/fhir/SearchParameter/Location-address-country" + } + }, + { + name: "operational-status", + active: true, + information: { + description: "Searches for locations (typically bed/room) that have an operational status (e.g. contaminated, housekeeping)", + builtin: false, + documentation: "http://hl7.org/fhir/SearchParameter/Location-operational-status" + } + }, + { + name: "type", + active: true, + information: { + description: "A code for the type of location", + builtin: false, + documentation: "http://hl7.org/fhir/SearchParameter/Location-type" + } + }, + { + name: "address-postalcode", + active: true, + information: { + description: "A postal code specified in an address", + builtin: false, + documentation: "http://hl7.org/fhir/SearchParameter/Location-address-postalcode" + } + }, + { + name: "near", + active: true, + information: { + description: "Search for locations where the location.position is near to, or within a specified distance of, the provided coordinates expressed as [latitude]|[longitude]|[distance]|[units] (using the WGS84 datum, see notes).If the units are omitted, then kms should be assumed. If the distance is omitted, then the server can use its own discretion as to what distances should be considered near (and units are irrelevant)Servers may search using various techniques that might have differing accuracies, depending on implementation efficiency.Requires the near-distance parameter to be provided also", + builtin: false, + documentation: "http://hl7.org/fhir/SearchParameter/Location-near" + } + }, + { + name: "address-state", + active: true, + information: { + description: "A state specified in an address", + builtin: false, + documentation: "http://hl7.org/fhir/SearchParameter/Location-address-state" + } + }, + { + name: "address-city", + active: true, + information: { + description: "A city specified in an address", + builtin: false, + documentation: "http://hl7.org/fhir/SearchParameter/Location-address-city" + } + }, + { + name: "address", + active: true, + information: { + description: "A (part of the) address of the location", + builtin: false, + documentation: "http://hl7.org/fhir/SearchParameter/Location-address" + } + }, + { + name: "name", + active: true, + information: { + description: "A portion of the location's name or alias", + builtin: false, + documentation: "http://hl7.org/fhir/SearchParameter/Location-name" + } + }, + { + name: "endpoint", + active: true, + information: { + description: "Technical endpoints providing access to services operated for the location", + builtin: false, + documentation: "http://hl7.org/fhir/SearchParameter/Location-endpoint" + } + }, + { + name: "status", + active: true, + information: { + description: "Searches for locations with a specific kind of status", + builtin: false, + documentation: "http://hl7.org/fhir/SearchParameter/Location-status" + } + }, + { + name: "identifier", + active: true, + information: { + description: "An identifier for the location", + builtin: false, + documentation: "http://hl7.org/fhir/SearchParameter/Location-identifier" + } + }, + { + name: "address-use", + active: true, + information: { + description: "A use code specified in an address", + builtin: false, + documentation: "http://hl7.org/fhir/SearchParameter/Location-address-use" + } + } + ], + operations: [ + + ], + serverConfig: (), + authzConfig: () +}; diff --git a/schedule-appointment-process-API/aggregate-service/oas/AppointmentAPI.yaml b/schedule-appointment-process-API/aggregate-service/oas/AppointmentAPI.yaml new file mode 100644 index 000000000..63e8af7e5 --- /dev/null +++ b/schedule-appointment-process-API/aggregate-service/oas/AppointmentAPI.yaml @@ -0,0 +1,2074 @@ +openapi: 3.0.1 +info: + title: AppointmentAPI + description: "A simplified version of the HL7 FHIR API for Appointment resource.\n\ + Supported Profiles: \nhttp://hl7.org/fhir/StructureDefinition/Appointment\n" + contact: + name: API Support + url: https://wso2.com/contact/ + email: info@wso2.com + license: + name: Apache 2.0 + url: https://www.apache.org/licenses/LICENSE-2.0.html + version: 1.0.0 +tags: +- name: international +- name: Appointment +- name: 4.0.1 +paths: + /fhir/r4/Appointment: + get: + tags: + - GET + - Appointment + summary: search Appointment + description: This operation is used to search a Appointment + parameters: + - name: reason-code + in: query + description: Coded reason this appointment is scheduled + required: false + schema: + type: string + x-wso2-oh-fhirType: token + - name: service-category + in: query + description: A broad categorization of the service that is to be performed + during this appointment + required: false + schema: + type: string + x-wso2-oh-fhirType: token + - name: patient + in: query + description: One of the individuals of the appointment is this patient + required: false + schema: + type: string + x-wso2-oh-fhirType: reference + - name: part-status + in: query + description: "The Participation status of the subject, or other participant\ + \ on the appointment. Can be used to locate participants that have not responded\ + \ to meeting requests." + required: false + schema: + type: string + x-wso2-oh-fhirType: token + - name: location + in: query + description: This location is listed in the participants of the appointment + required: false + schema: + type: string + x-wso2-oh-fhirType: reference + - name: service-type + in: query + description: The specific service that is to be performed during this appointment + required: false + schema: + type: string + x-wso2-oh-fhirType: token + - name: appointment-type + in: query + description: The style of appointment or patient that has been booked in the + slot (not service type) + required: false + schema: + type: string + x-wso2-oh-fhirType: token + - name: status + in: query + description: The overall status of the appointment + required: false + schema: + type: string + x-wso2-oh-fhirType: token + - name: practitioner + in: query + description: One of the individuals of the appointment is this practitioner + required: false + schema: + type: string + x-wso2-oh-fhirType: reference + - name: reason-reference + in: query + description: Reason the appointment is to take place (resource) + required: false + schema: + type: string + x-wso2-oh-fhirType: reference + - name: slot + in: query + description: The slots that this appointment is filling + required: false + schema: + type: string + x-wso2-oh-fhirType: reference + - name: specialty + in: query + description: The specialty of a practitioner that would be required to perform + the service requested in this appointment + required: false + schema: + type: string + x-wso2-oh-fhirType: token + - name: date + in: query + description: Appointment date/time. + required: false + schema: + type: string + x-wso2-oh-fhirType: date + - name: actor + in: query + description: Any one of the individuals participating in the appointment + required: false + schema: + type: string + x-wso2-oh-fhirType: reference + - name: identifier + in: query + description: An Identifier of the Appointment + required: false + schema: + type: string + x-wso2-oh-fhirType: token + - name: based-on + in: query + description: The service request this appointment is allocated to assess + required: false + schema: + type: string + x-wso2-oh-fhirType: reference + - name: supporting-info + in: query + description: Additional information to support the appointment + required: false + schema: + type: string + x-wso2-oh-fhirType: reference + - $ref: '#/components/parameters/_lastUpdatedParam' + - $ref: '#/components/parameters/_securityParam' + - $ref: '#/components/parameters/_tagParam' + - $ref: '#/components/parameters/_idParam' + - $ref: '#/components/parameters/_sourceParam' + - $ref: '#/components/parameters/_profileParam' + responses: + "200": + description: search Appointment operation successful + content: + application/fhir+json: + schema: + $ref: '#/components/schemas/Bundle' + security: + - default: [] + post: + tags: + - POST + - Appointment + summary: create Appointment + description: This operation is used to create a Appointment + responses: + "201": + description: create Appointment operation successful + security: + - default: [] + /fhir/r4/Appointment/{id}: + get: + tags: + - GET + - Appointment + summary: read Appointment + description: This operation is used to read a Appointment + parameters: + - name: id + in: path + description: logical identifier + required: true + schema: + type: string + responses: + "200": + description: read Appointment operation successful + content: + application/fhir+json: + schema: + $ref: '#/components/schemas/Appointment' + security: + - default: [] + put: + tags: + - PUT + - Appointment + summary: update Appointment + description: This operation is used to update a Appointment + parameters: + - name: id + in: path + description: logical identifier + required: true + schema: + type: string + responses: + "201": + description: update Appointment operation successful + security: + - default: [] + delete: + tags: + - DELETE + - Appointment + summary: delete Appointment + description: This operation is used to delete a Appointment + parameters: + - name: id + in: path + description: logical identifier + required: true + schema: + type: string + responses: + "204": + description: delete Appointment operation successful + security: + - default: [] +components: + schemas: + Resource: + required: + - resourceType + type: object + properties: + resourceType: + type: string + enum: + - Account + - ActivityDefinition + - AdverseEvent + - AllergyIntolerance + - Appointment + - AppointmentResponse + - AuditEvent + - Basic + - Binary + - BiologicallyDerivedProduct + - BodyStructure + - Bundle + - CapabilityStatement + - CarePlan + - CareTeam + - CatalogEntry + - ChargeItem + - ChargeItemDefinition + - Claim + - ClaimResponse + - ClinicalImpression + - CodeSystem + - Communication + - CommunicationRequest + - CompartmentDefinition + - Composition + - ConceptMap + - Condition + - Consent + - Contract + - Coverage + - CoverageEligibilityRequest + - CoverageEligibilityResponse + - DetectedIssue + - Device + - DeviceDefinition + - DeviceMetric + - DeviceRequest + - DeviceUseStatement + - DiagnosticReport + - DocumentManifest + - DocumentReference + - DomainResource + - EffectEvidenceSynthesis + - Encounter + - Endpoint + - EnrollmentRequest + - EnrollmentResponse + - EpisodeOfCare + - EventDefinition + - Evidence + - EvidenceVariable + - ExampleScenario + - ExplanationOfBenefit + - FamilyMemberHistory + - Flag + - Goal + - GraphDefinition + - Group + - GuidanceResponse + - HealthcareService + - ImagingStudy + - Immunization + - ImmunizationEvaluation + - ImmunizationRecommendation + - ImplementationGuide + - InsurancePlan + - Invoice + - Library + - Linkage + - List + - Location + - Measure + - MeasureReport + - Media + - Medication + - MedicationAdministration + - MedicationDispense + - MedicationKnowledge + - MedicationRequest + - MedicationStatement + - MedicinalProduct + - MedicinalProductAuthorization + - MedicinalProductContraindication + - MedicinalProductIndication + - MedicinalProductIngredient + - MedicinalProductInteraction + - MedicinalProductManufactured + - MedicinalProductPackaged + - MedicinalProductPharmaceutical + - MedicinalProductUndesirableEffect + - MessageDefinition + - MessageHeader + - MolecularSequence + - NamingSystem + - NutritionOrder + - Observation + - ObservationDefinition + - OperationDefinition + - OperationOutcome + - Organization + - OrganizationAffiliation + - Parameters + - Patient + - PaymentNotice + - PaymentReconciliation + - Person + - PlanDefinition + - Practitioner + - PractitionerRole + - Procedure + - Provenance + - Questionnaire + - QuestionnaireResponse + - RelatedPerson + - RequestGroup + - ResearchDefinition + - ResearchElementDefinition + - ResearchStudy + - ResearchSubject + - Resource + - RiskAssessment + - RiskEvidenceSynthesis + - Schedule + - SearchParameter + - ServiceRequest + - Slot + - Specimen + - SpecimenDefinition + - StructureDefinition + - StructureMap + - Subscription + - Substance + - SubstanceNucleicAcid + - SubstancePolymer + - SubstanceProtein + - SubstanceReferenceInformation + - SubstanceSourceMaterial + - SubstanceSpecification + - SupplyDelivery + - SupplyRequest + - Task + - TerminologyCapabilities + - TestReport + - TestScript + - ValueSet + - VerificationResult + - VisionPrescription + id: + pattern: "[A-Za-z0-9\\-\\.]{1,64}" + type: string + description: "The logical id of the resource, as used in the URL for the\ + \ resource. Once assigned, this value never changes." + meta: + $ref: '#/components/schemas/Meta' + implicitRules: + pattern: \S* + type: string + description: "A reference to a set of rules that were followed when the\ + \ resource was constructed, and which must be understood when processing\ + \ the content. Often, this is a reference to an implementation guide that\ + \ defines the special rules along with other profiles etc." + language: + pattern: "[^\\s]+(\\s[^\\s]+)*" + type: string + description: The base language in which the resource is written. + DomainResource: + allOf: + - $ref: '#/components/schemas/Resource' + - type: object + properties: + text: + $ref: '#/components/schemas/Narrative' + contained: + type: array + items: + $ref: '#/components/schemas/Resource' + extension: + type: array + items: + $ref: '#/components/schemas/Extension' + modifierExtension: + type: array + items: + $ref: '#/components/schemas/Extension' + Bundle: + required: + - type + example: + resourceType: Bundle + meta: + versionId: exaha1GMZU + lastUpdated: 2020-03-12T00:11:47.779-04:00 + source: OscBE5P0oL + profile: + - 2t1_PYz6sb + security: + - system: __ZQLAVVwf + version: VLbtqKcbsY + code: VUlDjytwgy + display: qiSsBMDgPt + userSelected: true + tag: + - system: zjCxD2PaBs + version: rzU1dChGRU + code: T_fA90_uZ3 + display: lX3NJdEblQ + userSelected: true + - code: ibm/complete-mock + implicitRules: vor6NZfU_z + language: L2CvMvoQCf + identifier: + use: temp + type: + coding: + - system: 2KSvg9_FAi + version: gGp8DOk9J1 + code: mfTsOuaMha + display: oWF_kySdMa + userSelected: true + text: JCfLMefieh + system: OD8o0wUurR + value: rB39S_eWKm + period: + start: 2020-03-12T00:11:47.781-04:00 + end: 2020-03-12T00:11:47.781-04:00 + type: message + timestamp: 2020-03-12T00:11:47.768-04:00 + total: 253899444 + link: + - relation: 7ntmg3QgsB + url: yqZC1h4OiP + entry: + - link: + - relation: BYqAgl7fxn + url: FjYy1I_fo0 + fullUrl: jRHNMRSGoH + search: + mode: outcome + score: 215939698769 + request: + method: HEAD + url: fsGmEqxt_V + ifNoneMatch: 9Ce9vVtTEJ + ifModifiedSince: 2020-03-12T00:11:47.776-04:00 + ifMatch: PtLujM597v + ifNoneExist: thVohqaRoO + response: + status: Vz647bKzDX + location: vG6ZG5JY3n + etag: UAy7mNeNeo + lastModified: 2020-03-12T00:11:47.773-04:00 + signature: + type: + - system: UXJhVBJtsw + version: dSN1eoXw7X + code: 7n8GNkS7ty + display: Ff82O7MvgK + userSelected: true + when: 2020-03-12T00:11:47.767-04:00 + who: + reference: Practitioner/8Jt_8Rtofu + type: Practitioner + identifier: + use: secondary + type: + coding: + - system: aOvIofeYmD + version: mNBmEi5RDA + code: sM5gtqK3Xw + display: aOf6nJImxy + userSelected: true + text: zaOFAoPxBA + system: C70kG_5CcM + value: TYMT3hKJFR + period: + start: 2020-03-12T00:11:47.765-04:00 + end: 2020-03-12T00:11:47.765-04:00 + display: 5vUkPEw2_I + onBehalfOf: + reference: Practitioner/PEch7CxGIg + type: Practitioner + identifier: + use: usual + type: + coding: + - system: ixnevWoHGy + version: hJQzXghlpb + code: h6NurXxnyH + display: C0fDviMSsU + userSelected: true + text: izhrMjXk74 + system: giGNRU5rWU + value: e7_ezY1vVp + period: + start: 2020-03-12T00:11:47.767-04:00 + end: 2020-03-12T00:11:47.767-04:00 + display: nWuUixICQd + targetFormat: F93ISQKaDY + sigFormat: Qx2S3AEiMQ + data: AGxIVG4= + allOf: + - $ref: '#/components/schemas/Resource' + - type: object + properties: + identifier: + $ref: '#/components/schemas/Identifier' + type: + type: string + description: Indicates the purpose of this bundle – how it is intended + to be used. + enum: + - document + - message + - transaction + - transaction-response + - batch + - batch-response + - history + - searchset + - collection + timestamp: + pattern: "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\\ + .[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))" + type: string + description: The date/time that the bundle was assembled – i.e. + when the resources were placed in the bundle. + total: + type: integer + description: "If a set of search matches, this is the total number of\ + \ entries of type 'match' across all pages in the search. It does not\ + \ include search.mode = 'include' or 'outcome' entries and it does not\ + \ provide a count of the number of entries in the Bundle." + format: int32 + link: + type: array + items: + $ref: '#/components/schemas/Bundle_Link' + entry: + type: array + items: + $ref: '#/components/schemas/Bundle_Entry' + signature: + $ref: '#/components/schemas/Signature' + OperationOutcome: + required: + - issue + example: + resourceType: OperationOutcome + meta: + versionId: aj7xYfDKGG + lastUpdated: 2020-03-12T00:11:56.482-04:00 + source: ZqswRdBz2V + profile: + - 7MtlUHdgF3 + security: + - system: eBZLDvfQS6 + version: 3loXo6Bekk + code: fApLgubn5v + display: hGDoUOaTiY + userSelected: true + tag: + - system: d6ZKFrRy9C + version: co9wqQZDjO + code: Z2JT_ZxmeR + display: f5JMtds3fb + userSelected: true + - code: ibm/complete-mock + implicitRules: FwNANOTUkD + language: iDvESiu0cB + text: + status: extensions + div:
+ issue: + - severity: warning + code: invariant + details: + coding: + - system: 9TiBhtaNhv + version: 38XIrYkjYf + code: s4dzxZ4dsW + display: tu3Q0RYWRq + userSelected: true + text: qW3nzpKNue + diagnostics: 4zXKgm6Eae + location: + - EmMlBkbb8W + expression: + - bSBqh22fAT + allOf: + - $ref: '#/components/schemas/DomainResource' + - type: object + properties: + issue: + type: array + items: + $ref: '#/components/schemas/OperationOutcome_Issue' + Bundle_Entry: + allOf: + - $ref: '#/components/schemas/BackboneElement' + - type: object + properties: + link: + type: array + items: + $ref: '#/components/schemas/Bundle_Link' + fullUrl: + pattern: \S* + type: string + description: "The Absolute URL for the resource. The fullUrl SHALL NOT\ + \ disagree with the id in the resource – i.e. if the fullUrl is\ + \ not a urn:uuid, the URL shall be version–independent URL consistent\ + \ with the Resource.id. The fullUrl is a version independent reference\ + \ to the resource. The fullUrl element SHALL have a value except that:\ + \ \n* fullUrl can be empty on a POST (although it does not need to when\ + \ specifying a temporary id for reference in the bundle)\n* Results\ + \ from operations might involve resources that are not identified." + resource: + $ref: '#/components/schemas/Resource' + search: + $ref: '#/components/schemas/Bundle_Entry_Search' + request: + $ref: '#/components/schemas/Bundle_Entry_Request' + response: + $ref: '#/components/schemas/Bundle_Entry_Response' + Bundle_Entry_Response: + required: + - status + allOf: + - $ref: '#/components/schemas/BackboneElement' + - type: object + properties: + status: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: The status code returned by processing this entry. The status + SHALL start with a 3 digit HTTP code (e.g. 404) and may contain the + standard HTTP description associated with the status code. + location: + pattern: \S* + type: string + description: "The location header created by processing this operation,\ + \ populated if the operation returns a location." + etag: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "The Etag for the resource, if the operation for the entry\ + \ produced a versioned resource (see [Resource Metadata and Versioning](http.html#versioning)\ + \ and [Managing Resource Contention](http.html#concurrency))." + lastModified: + pattern: "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\\ + .[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))" + type: string + description: The date/time that the resource was modified on the server. + outcome: + $ref: '#/components/schemas/Resource' + Bundle_Entry_Request: + required: + - method + - url + allOf: + - $ref: '#/components/schemas/BackboneElement' + - type: object + properties: + method: + type: string + description: "In a transaction or batch, this is the HTTP action to be\ + \ executed for this entry. In a history bundle, this indicates the HTTP\ + \ action that occurred." + enum: + - GET + - HEAD + - POST + - PUT + - DELETE + - PATCH + url: + pattern: \S* + type: string + description: "The URL for this entry, relative to the root (the address\ + \ to which the request is posted)." + ifNoneMatch: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "If the ETag values match, return a 304 Not Modified status.\ + \ See the API documentation for [\"Conditional Read\"](http.html#cread)." + ifModifiedSince: + pattern: "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\\ + .[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))" + type: string + description: "Only perform the operation if the last updated date matches.\ + \ See the API documentation for [\"Conditional Read\"](http.html#cread)." + ifMatch: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "Only perform the operation if the Etag value matches. For\ + \ more information, see the API section [\"Managing Resource Contention\"\ + ](http.html#concurrency)." + ifNoneExist: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "Instruct the server not to perform the create if a specified\ + \ resource already exists. For further information, see the API documentation\ + \ for [\"Conditional Create\"](http.html#ccreate). This is just the\ + \ query portion of the URL – what follows the \"?\" (not including\ + \ the \"?\")." + Bundle_Entry_Search: + allOf: + - $ref: '#/components/schemas/BackboneElement' + - type: object + properties: + mode: + type: string + description: "Why this entry is in the result set – whether it's\ + \ included as a match or because of an _include requirement, or to convey\ + \ information or warning information about the search process." + enum: + - match + - include + - outcome + score: + type: number + description: "When searching, the server's search ranking score for the\ + \ entry." + Bundle_Link: + required: + - relation + - url + allOf: + - $ref: '#/components/schemas/BackboneElement' + - type: object + properties: + relation: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "A name which details the functional use for this link –\ + \ see [http://www.iana.org/assignments/link–relations/link–relations.xhtml#link–relations–1](http://www.iana.org/assignments/link–relations/link–relations.xhtml#link–relations–1)." + url: + pattern: \S* + type: string + description: The reference details for the link. + OperationOutcome_Issue: + required: + - code + - severity + allOf: + - $ref: '#/components/schemas/BackboneElement' + - type: object + properties: + severity: + type: string + description: Indicates whether the issue indicates a variation from successful + processing. + enum: + - fatal + - error + - warning + - information + code: + type: string + description: "Describes the type of the issue. The system that creates\ + \ an OperationOutcome SHALL choose the most applicable code from the\ + \ IssueType value set, and may additional provide its own code for the\ + \ error in the details element." + enum: + - invalid + - structure + - required + - value + - invariant + - security + - login + - unknown + - expired + - forbidden + - suppressed + - processing + - not-supported + - duplicate + - multiple-matches + - not-found + - deleted + - too-long + - code-invalid + - extension + - too-costly + - business-rule + - conflict + - transient + - lock-error + - no-store + - exception + - timeout + - incomplete + - throttled + - informational + details: + $ref: '#/components/schemas/CodeableConcept' + diagnostics: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: Additional diagnostic information about the issue. + location: + type: array + items: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "This element is deprecated because it is XML specific.\ + \ It is replaced by issue.expression, which is format independent,\ + \ and simpler to parse. \n\nFor resource issues, this will be a simple\ + \ XPath limited to element names, repetition indicators and the default\ + \ child accessor that identifies one of the elements in the resource\ + \ that caused this issue to be raised. For HTTP errors, will be \"\ + http.\" + the parameter name." + expression: + type: array + items: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "A [simple subset of FHIRPath](fhirpath.html#simple) limited\ + \ to element names, repetition indicators and the default child accessor\ + \ that identifies one of the elements in the resource that caused\ + \ this issue to be raised." + Element: + type: object + properties: + id: + pattern: "[A-Za-z0-9\\-\\.]{1,64}" + type: string + description: Unique id for the element within a resource (for internal references). + This may be any string value that does not contain spaces. + extension: + type: array + items: + $ref: '#/components/schemas/Extension' + BackboneElement: + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + modifierExtension: + type: array + items: + $ref: '#/components/schemas/Extension' + Address: + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + use: + type: string + description: The purpose of this address. + enum: + - home + - work + - temp + - old + - billing + type: + type: string + description: Distinguishes between physical addresses (those you can visit) + and mailing addresses (e.g. PO Boxes and care–of addresses). Most + addresses are both. + enum: + - postal + - physical + - both + text: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: Specifies the entire address as it should be displayed e.g. + on a postal label. This may be provided instead of or as well as the + specific parts. + line: + type: array + items: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "This component contains the house number, apartment number,\ + \ street name, street direction, P.O. Box number, delivery hints,\ + \ and similar address information." + city: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "The name of the city, town, suburb, village or other community\ + \ or delivery center." + district: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: The name of the administrative area (county). + state: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: Sub–unit of a country with limited sovereignty in a + federally organized country. A code may be used if codes are in common + use (e.g. US 2 letter state codes). + postalCode: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: A postal code designating a region defined by the postal + service. + country: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: Country – a nation as commonly understood or generally + accepted. + period: + $ref: '#/components/schemas/Period' + Age: + allOf: + - $ref: '#/components/schemas/Quantity' + - type: object + properties: {} + Annotation: + required: + - text + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + authorReference: + $ref: '#/components/schemas/Reference' + authorString: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: The individual responsible for making the annotation. + time: + pattern: "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1])(T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\\ + .[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00)))?)?)?" + type: string + description: Indicates when this particular annotation was made. + text: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: The text of the annotation in markdown format. + Attachment: + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + contentType: + pattern: "[^\\s]+(\\s[^\\s]+)*" + type: string + description: Identifies the type of the data in the attachment and allows + a method to be chosen to interpret or render the data. Includes mime + type parameters such as charset where appropriate. + language: + pattern: "[^\\s]+(\\s[^\\s]+)*" + type: string + description: The human language of the content. The value can be any valid + value according to BCP 47. + data: + pattern: "(\\s*([0-9a-zA-Z\\+\\=]){4}\\s*)+" + type: string + description: "The actual data of the attachment – a sequence of\ + \ bytes, base64 encoded." + url: + pattern: \S* + type: string + description: A location where the data can be accessed. + size: + type: integer + description: "The number of bytes of data that make up this attachment\ + \ (before base64 encoding, if that is done)." + format: int32 + hash: + pattern: "(\\s*([0-9a-zA-Z\\+\\=]){4}\\s*)+" + type: string + description: The calculated hash of the data using SHA–1. Represented + using base64. + title: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: A label or set of text to display in place of the data. + creation: + pattern: "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1])(T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\\ + .[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00)))?)?)?" + type: string + description: The date that the attachment was first created. + CodeableConcept: + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + coding: + type: array + items: + $ref: '#/components/schemas/Coding' + text: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: A human language representation of the concept as seen/selected/uttered + by the user who entered the data and/or which represents the intended + meaning of the user. + Coding: + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + system: + pattern: \S* + type: string + description: The identification of the code system that defines the meaning + of the symbol in the code. + version: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "The version of the code system which was used when choosing\ + \ this code. Note that a well–maintained code system does not\ + \ need the version reported, because the meaning of codes is consistent\ + \ across versions. However this cannot consistently be assured, and\ + \ when the meaning is not guaranteed to be consistent, the version SHOULD\ + \ be exchanged." + code: + pattern: "[^\\s]+(\\s[^\\s]+)*" + type: string + description: A symbol in syntax defined by the system. The symbol may + be a predefined code or an expression in a syntax defined by the coding + system (e.g. post–coordination). + display: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "A representation of the meaning of the code in the system,\ + \ following the rules of the system." + userSelected: + type: boolean + description: Indicates that this coding was chosen by a user directly + – e.g. off a pick list of available items (codes or displays). + ContactPoint: + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + system: + type: string + description: Telecommunications form for contact point – what communications + system is required to make use of the contact. + enum: + - phone + - fax + - email + - pager + - url + - sms + - other + value: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "The actual contact point details, in a form that is meaningful\ + \ to the designated communication system (i.e. phone number or email\ + \ address)." + use: + type: string + description: Identifies the purpose for the contact point. + enum: + - home + - work + - temp + - old + - mobile + rank: + type: integer + description: Specifies a preferred order in which to use a set of contacts. + ContactPoints with lower rank values are more preferred than those with + higher rank values. + format: int32 + period: + $ref: '#/components/schemas/Period' + Count: + allOf: + - $ref: '#/components/schemas/Quantity' + - type: object + properties: {} + Distance: + allOf: + - $ref: '#/components/schemas/Quantity' + - type: object + properties: {} + Duration: + allOf: + - $ref: '#/components/schemas/Quantity' + - type: object + properties: {} + HumanName: + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + use: + type: string + description: Identifies the purpose for this name. + enum: + - usual + - official + - temp + - nickname + - anonymous + - old + - maiden + text: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: Specifies the entire name as it should be displayed e.g. + on an application UI. This may be provided instead of or as well as + the specific parts. + family: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: The part of a name that links to the genealogy. In some cultures + (e.g. Eritrea) the family name of a son is the first name of his father. + given: + type: array + items: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: Given name. + prefix: + type: array + items: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "Part of the name that is acquired as a title due to academic,\ + \ legal, employment or nobility status, etc. and that appears at the\ + \ start of the name." + suffix: + type: array + items: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "Part of the name that is acquired as a title due to academic,\ + \ legal, employment or nobility status, etc. and that appears at the\ + \ end of the name." + period: + $ref: '#/components/schemas/Period' + Identifier: + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + use: + type: string + description: The purpose of this identifier. + enum: + - usual + - official + - temp + - secondary + - old + type: + $ref: '#/components/schemas/CodeableConcept' + system: + pattern: \S* + type: string + description: "Establishes the namespace for the value – that is,\ + \ a URL that describes a set values that are unique." + value: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: The portion of the identifier typically relevant to the user + and which is unique within the context of the system. + period: + $ref: '#/components/schemas/Period' + assigner: + $ref: '#/components/schemas/Reference' + Money: + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + value: + type: number + description: Numerical value (with implicit precision). + currency: + pattern: "[^\\s]+(\\s[^\\s]+)*" + type: string + description: ISO 4217 Currency Code. + MoneyQuantity: + allOf: + - $ref: '#/components/schemas/Quantity' + - type: object + properties: {} + Period: + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + start: + pattern: "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1])(T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\\ + .[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00)))?)?)?" + type: string + description: The start of the period. The boundary is inclusive. + end: + pattern: "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1])(T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\\ + .[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00)))?)?)?" + type: string + description: "The end of the period. If the end of the period is missing,\ + \ it means no end was known or planned at the time the instance was\ + \ created. The start may be in the past, and the end date in the future,\ + \ which means that period is expected/planned to end at that time." + Quantity: + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + value: + type: number + description: The value of the measured amount. The value includes an implicit + precision in the presentation of the value. + comparator: + type: string + description: "How the value should be understood and represented –\ + \ whether the actual value is greater or less than the stated value\ + \ due to measurement issues; e.g. if the comparator is \"<\" , then\ + \ the real value is < stated value." + enum: + - < + - <= + - '>=' + - '>' + unit: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: A human–readable form of the unit. + system: + pattern: \S* + type: string + description: The identification of the system that provides the coded + form of the unit. + code: + pattern: "[^\\s]+(\\s[^\\s]+)*" + type: string + description: A computer processable form of the unit in some unit representation + system. + Range: + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + low: + $ref: '#/components/schemas/SimpleQuantity' + high: + $ref: '#/components/schemas/SimpleQuantity' + Ratio: + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + numerator: + $ref: '#/components/schemas/Quantity' + denominator: + $ref: '#/components/schemas/Quantity' + Reference: + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + reference: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "A reference to a location at which the other resource is\ + \ found. The reference may be a relative reference, in which case it\ + \ is relative to the service base URL, or an absolute URL that resolves\ + \ to the location where the resource is found. The reference may be\ + \ version specific or not. If the reference is not to a FHIR RESTful\ + \ server, then it should be assumed to be version specific. Internal\ + \ fragment references (start with '#') refer to contained resources." + type: + pattern: \S* + type: string + description: "The expected type of the target of the reference. If both\ + \ Reference.type and Reference.reference are populated and Reference.reference\ + \ is a FHIR URL, both SHALL be consistent.\n\nThe type is the Canonical\ + \ URL of Resource Definition that is the type this reference refers\ + \ to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/\ + \ e.g. \"Patient\" is a reference to http://hl7.org/fhir/StructureDefinition/Patient.\ + \ Absolute URLs are only allowed for logical models (and can only be\ + \ used in references in logical models, not resources)." + identifier: + $ref: '#/components/schemas/Identifier' + display: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: Plain text narrative that identifies the resource in addition + to the resource reference. + SampledData: + required: + - dimensions + - origin + - period + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + origin: + $ref: '#/components/schemas/SimpleQuantity' + period: + type: number + description: "The length of time between sampling times, measured in milliseconds." + factor: + type: number + description: A correction factor that is applied to the sampled data points + before they are added to the origin. + lowerLimit: + type: number + description: The lower limit of detection of the measured points. This + is needed if any of the data points have the value "L" (lower than detection + limit). + upperLimit: + type: number + description: The upper limit of detection of the measured points. This + is needed if any of the data points have the value "U" (higher than + detection limit). + dimensions: + type: integer + description: "The number of sample points at each time point. If this\ + \ value is greater than one, then the dimensions will be interlaced\ + \ – all the sample points for a point in time will be recorded\ + \ at once." + format: int32 + data: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "A series of data points which are decimal values separated\ + \ by a single space (character u20). The special values \"E\" (error),\ + \ \"L\" (below detection limit) and \"U\" (above detection limit) can\ + \ also be used in place of a decimal value." + SimpleQuantity: + allOf: + - $ref: '#/components/schemas/Quantity' + - type: object + properties: {} + Signature: + required: + - type + - when + - who + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + type: + type: array + items: + $ref: '#/components/schemas/Coding' + when: + pattern: "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\\ + .[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))" + type: string + description: When the digital signature was signed. + who: + $ref: '#/components/schemas/Reference' + onBehalfOf: + $ref: '#/components/schemas/Reference' + targetFormat: + pattern: "[^\\s]+(\\s[^\\s]+)*" + type: string + description: A mime type that indicates the technical format of the target + resources signed by the signature. + sigFormat: + pattern: "[^\\s]+(\\s[^\\s]+)*" + type: string + description: "A mime type that indicates the technical format of the signature.\ + \ Important mime types are application/signature+xml for X ML DigSig,\ + \ application/jose for JWS, and image/* for a graphical image of a signature,\ + \ etc." + data: + pattern: "(\\s*([0-9a-zA-Z\\+\\=]){4}\\s*)+" + type: string + description: The base64 encoding of the Signature content. When signature + is not recorded electronically this element would be empty. + Timing: + allOf: + - $ref: '#/components/schemas/BackboneElement' + - type: object + properties: + event: + type: array + items: + pattern: "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1])(T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\\ + .[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00)))?)?)?" + type: string + description: Identifies specific times when the event occurs. + repeat: + $ref: '#/components/schemas/Timing_Repeat' + code: + $ref: '#/components/schemas/CodeableConcept' + Timing_Repeat: + allOf: + - $ref: '#/components/schemas/BackboneElement' + - type: object + properties: + boundsDuration: + $ref: '#/components/schemas/Duration' + boundsRange: + $ref: '#/components/schemas/Range' + boundsPeriod: + $ref: '#/components/schemas/Period' + count: + type: integer + description: "A total count of the desired number of repetitions across\ + \ the duration of the entire timing specification. If countMax is present,\ + \ this element indicates the lower bound of the allowed range of count\ + \ values." + format: int32 + countMax: + type: integer + description: "If present, indicates that the count is a range –\ + \ so to perform the action between [count] and [countMax] times." + format: int32 + duration: + type: number + description: "How long this thing happens for when it happens. If durationMax\ + \ is present, this element indicates the lower bound of the allowed\ + \ range of the duration." + durationMax: + type: number + description: "If present, indicates that the duration is a range –\ + \ so to perform the action between [duration] and [durationMax] time\ + \ length." + durationUnit: + type: string + description: "The units of time for the duration, in UCUM units." + enum: + - s + - min + - h + - d + - wk + - mo + - a + frequency: + type: integer + description: "The number of times to repeat the action within the specified\ + \ period. If frequencyMax is present, this element indicates the lower\ + \ bound of the allowed range of the frequency." + format: int32 + frequencyMax: + type: integer + description: "If present, indicates that the frequency is a range –\ + \ so to repeat between [frequency] and [frequencyMax] times within the\ + \ period or period range." + format: int32 + period: + type: number + description: "Indicates the duration of time over which repetitions are\ + \ to occur; e.g. to express \"3 times per day\", 3 would be the frequency\ + \ and \"1 day\" would be the period. If periodMax is present, this element\ + \ indicates the lower bound of the allowed range of the period length." + periodMax: + type: number + description: "If present, indicates that the period is a range from [period]\ + \ to [periodMax], allowing expressing concepts such as \"do this once\ + \ every 3–5 days." + periodUnit: + type: string + description: The units of time for the period in UCUM units. + enum: + - s + - min + - h + - d + - wk + - mo + - a + dayOfWeek: + type: array + items: + type: string + description: "If one or more days of week is provided, then the action\ + \ happens only on the specified day(s)." + enum: + - mon + - tue + - wed + - thu + - fri + - sat + - sun + timeOfDay: + type: array + items: + pattern: "([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\.[0-9]+)?" + type: string + description: Specified time of day for action to take place. + when: + type: array + items: + type: string + description: "An approximate time period during the day, potentially\ + \ linked to an event of daily living that indicates when the action\ + \ should occur." + enum: + - MORN + - MORN.early + - MORN.late + - NOON + - AFT + - AFT.early + - AFT.late + - EVE + - EVE.early + - EVE.late + - NIGHT + - PHS + - HS + - WAKE + - C + - CM + - CD + - CV + - AC + - ACM + - ACD + - ACV + - PC + - PCM + - PCD + - PCV + offset: + type: integer + description: "The number of minutes from the event. If the event code\ + \ does not indicate whether the minutes is before or after the event,\ + \ then the offset is assumed to be after the event." + format: int32 + ContactDetail: + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + name: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: The name of an individual to contact. + telecom: + type: array + items: + $ref: '#/components/schemas/ContactPoint' + RelatedArtifact: + required: + - type + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + type: + type: string + description: The type of relationship to the related artifact. + enum: + - documentation + - justification + - citation + - predecessor + - successor + - derived-from + - depends-on + - composed-of + label: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "A short label that can be used to reference the citation\ + \ from elsewhere in the containing artifact, such as a footnote index." + display: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "A brief description of the document or knowledge resource\ + \ being referenced, suitable for display to a consumer." + citation: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: A bibliographic citation for the related artifact. This text + SHOULD be formatted according to an accepted citation format. + url: + pattern: \S* + type: string + description: A url for the artifact that can be followed to access the + actual content. + document: + $ref: '#/components/schemas/Attachment' + resource: + pattern: \S* + type: string + description: "The related resource, such as a library, value set, profile,\ + \ or other knowledge resource." + UsageContext: + required: + - code + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + code: + $ref: '#/components/schemas/Coding' + valueCodeableConcept: + $ref: '#/components/schemas/CodeableConcept' + valueQuantity: + $ref: '#/components/schemas/Quantity' + valueRange: + $ref: '#/components/schemas/Range' + valueReference: + $ref: '#/components/schemas/Reference' + Meta: + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + versionId: + pattern: "[A-Za-z0-9\\-\\.]{1,64}" + type: string + description: "The version specific identifier, as it appears in the version\ + \ portion of the URL. This value changes when the resource is created,\ + \ updated, or deleted." + lastUpdated: + pattern: "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\\ + .[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))" + type: string + description: When the resource last changed – e.g. when the version + changed. + source: + pattern: \S* + type: string + description: "A uri that identifies the source system of the resource.\ + \ This provides a minimal amount of [Provenance](provenance.html#) information\ + \ that can be used to track or differentiate the source of information\ + \ in the resource. The source may identify another FHIR server, document,\ + \ message, database, etc." + profile: + type: array + items: + pattern: \S* + type: string + description: "A list of profiles (references to [StructureDefinition](structuredefinition.html#)\ + \ resources) that this resource claims to conform to. The URL is a\ + \ reference to [StructureDefinition.url](structuredefinition–definitions.html#StructureDefinition.url)." + security: + type: array + items: + $ref: '#/components/schemas/Coding' + tag: + type: array + items: + $ref: '#/components/schemas/Coding' + Narrative: + required: + - div + - status + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + status: + type: string + description: "The status of the narrative – whether it's entirely\ + \ generated (from just the defined data or the extensions too), or whether\ + \ a human authored it and it may contain additional data." + enum: + - generated + - extensions + - additional + - empty + div: + type: string + description: "The actual narrative content, a stripped down version of\ + \ XHTML." + Extension: + required: + - url + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + url: + pattern: \S* + type: string + description: Source of the definition for the extension code – a + logical name or a URL. + valueBase64Binary: + pattern: "(\\s*([0-9a-zA-Z\\+\\=]){4}\\s*)+" + type: string + description: "Value of extension – must be one of a constrained\ + \ set of the data types (see [Extensibility](extensibility.html) for\ + \ a list)." + valueBoolean: + type: boolean + description: "Value of extension – must be one of a constrained\ + \ set of the data types (see [Extensibility](extensibility.html) for\ + \ a list)." + valueCanonical: + pattern: \S* + type: string + description: "Value of extension – must be one of a constrained\ + \ set of the data types (see [Extensibility](extensibility.html) for\ + \ a list)." + valueCode: + pattern: "[^\\s]+(\\s[^\\s]+)*" + type: string + description: "Value of extension – must be one of a constrained\ + \ set of the data types (see [Extensibility](extensibility.html) for\ + \ a list)." + valueDate: + pattern: "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1]))?)?" + type: string + description: "Value of extension – must be one of a constrained\ + \ set of the data types (see [Extensibility](extensibility.html) for\ + \ a list)." + valueDateTime: + pattern: "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1])(T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\\ + .[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00)))?)?)?" + type: string + description: "Value of extension – must be one of a constrained\ + \ set of the data types (see [Extensibility](extensibility.html) for\ + \ a list)." + valueDecimal: + type: number + description: "Value of extension – must be one of a constrained\ + \ set of the data types (see [Extensibility](extensibility.html) for\ + \ a list)." + valueId: + pattern: "[A-Za-z0-9\\-\\.]{1,64}" + type: string + description: "Value of extension – must be one of a constrained\ + \ set of the data types (see [Extensibility](extensibility.html) for\ + \ a list)." + valueInstant: + pattern: "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\\ + .[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))" + type: string + description: "Value of extension – must be one of a constrained\ + \ set of the data types (see [Extensibility](extensibility.html) for\ + \ a list)." + valueInteger: + type: integer + description: "Value of extension – must be one of a constrained\ + \ set of the data types (see [Extensibility](extensibility.html) for\ + \ a list)." + format: int32 + valueMarkdown: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "Value of extension – must be one of a constrained\ + \ set of the data types (see [Extensibility](extensibility.html) for\ + \ a list)." + valueOid: + pattern: "urn:oid:[0-2](\\.(0|[1-9][0-9]*))+" + type: string + description: "Value of extension – must be one of a constrained\ + \ set of the data types (see [Extensibility](extensibility.html) for\ + \ a list)." + valuePositiveInt: + type: integer + description: "Value of extension – must be one of a constrained\ + \ set of the data types (see [Extensibility](extensibility.html) for\ + \ a list)." + format: int32 + valueString: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "Value of extension – must be one of a constrained\ + \ set of the data types (see [Extensibility](extensibility.html) for\ + \ a list)." + valueTime: + pattern: "([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\.[0-9]+)?" + type: string + description: "Value of extension – must be one of a constrained\ + \ set of the data types (see [Extensibility](extensibility.html) for\ + \ a list)." + valueUnsignedInt: + type: integer + description: "Value of extension – must be one of a constrained\ + \ set of the data types (see [Extensibility](extensibility.html) for\ + \ a list)." + format: int32 + valueUri: + pattern: \S* + type: string + description: "Value of extension – must be one of a constrained\ + \ set of the data types (see [Extensibility](extensibility.html) for\ + \ a list)." + valueUrl: + pattern: \S* + type: string + description: "Value of extension – must be one of a constrained\ + \ set of the data types (see [Extensibility](extensibility.html) for\ + \ a list)." + valueUuid: + pattern: "urn:uuid:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}" + type: string + description: "Value of extension – must be one of a constrained\ + \ set of the data types (see [Extensibility](extensibility.html) for\ + \ a list)." + valueAddress: + $ref: '#/components/schemas/Address' + valueAge: + $ref: '#/components/schemas/Age' + valueAnnotation: + $ref: '#/components/schemas/Annotation' + valueAttachment: + $ref: '#/components/schemas/Attachment' + valueCodeableConcept: + $ref: '#/components/schemas/CodeableConcept' + valueCoding: + $ref: '#/components/schemas/Coding' + valueContactPoint: + $ref: '#/components/schemas/ContactPoint' + valueCount: + $ref: '#/components/schemas/Count' + valueDistance: + $ref: '#/components/schemas/Distance' + valueDuration: + $ref: '#/components/schemas/Duration' + valueHumanName: + $ref: '#/components/schemas/HumanName' + valueIdentifier: + $ref: '#/components/schemas/Identifier' + valueMoney: + $ref: '#/components/schemas/Money' + valuePeriod: + $ref: '#/components/schemas/Period' + valueQuantity: + $ref: '#/components/schemas/Quantity' + valueRange: + $ref: '#/components/schemas/Range' + valueRatio: + $ref: '#/components/schemas/Ratio' + valueReference: + $ref: '#/components/schemas/Reference' + valueSampledData: + $ref: '#/components/schemas/SampledData' + valueSignature: + $ref: '#/components/schemas/Signature' + valueTiming: + $ref: '#/components/schemas/Timing' + valueContactDetail: + $ref: '#/components/schemas/ContactDetail' + valueRelatedArtifact: + $ref: '#/components/schemas/RelatedArtifact' + valueUsageContext: + $ref: '#/components/schemas/UsageContext' + valueMeta: + $ref: '#/components/schemas/Meta' + Appointment: + required: + - participant + - status + allOf: + - $ref: '#/components/schemas/DomainResource' + - type: object + properties: + serviceType: + $ref: '#/components/schemas/CodeableConcept' + extension: + $ref: '#/components/schemas/Extension' + specialty: + $ref: '#/components/schemas/CodeableConcept' + modifierExtension: + $ref: '#/components/schemas/Extension' + reasonReference: + $ref: '#/components/schemas/Reference' + description: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "The brief description of the appointment as would be shown\ + \ on a subject line in a meeting request, or appointment list. Detailed\ + \ or expanded information should be put in the comment field." + language: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: The base language in which the resource is written. + requestedPeriod: + $ref: '#/components/schemas/Period' + minutesDuration: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "Number of minutes that the appointment is to take. This\ + \ can be less than the duration between the start and end times. For\ + \ example, where the actual time of appointment is only an estimate\ + \ or if a 30 minute appointment is being requested, but any time would\ + \ work. Also, if there is, for example, a planned 15 minute break in\ + \ the middle of a long appointment, the duration may be 15 minutes less\ + \ than the difference between the start and end." + slot: + $ref: '#/components/schemas/Reference' + type: + $ref: '#/components/schemas/CodeableConcept' + serviceCategory: + $ref: '#/components/schemas/CodeableConcept' + participant: + $ref: '#/components/schemas/BackboneElement' + required: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "Whether this participant is required to be present at the\ + \ meeting. This covers a use-case where two doctors need to meet to\ + \ discuss the results for a specific patient, and the patient is not\ + \ required to be present." + end: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: Date/Time that the appointment is to conclude. + id: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: Unique id for the element within a resource (for internal + references). This may be any string value that does not contain spaces. + text: + $ref: '#/components/schemas/Narrative' + reasonCode: + $ref: '#/components/schemas/CodeableConcept' + basedOn: + $ref: '#/components/schemas/Reference' + identifier: + $ref: '#/components/schemas/Identifier' + appointmentType: + $ref: '#/components/schemas/CodeableConcept' + period: + $ref: '#/components/schemas/Period' + created: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "The date that this appointment was initially created. This\ + \ could be different to the meta.lastModified value on the initial entry,\ + \ as this could have been before the resource was created on the FHIR\ + \ server, and should remain unchanged over the lifespan of the appointment." + supportingInformation: + $ref: '#/components/schemas/Reference' + start: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: Date/Time that the appointment is to take place. + priority: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "The priority of the appointment. Can be used to make informed\ + \ decisions if needing to re-prioritize appointments. (The iCal Standard\ + \ specifies 0 as undefined, 1 as highest, 9 as lowest priority)." + actor: + $ref: '#/components/schemas/Reference' + contained: + $ref: '#/components/schemas/Resource' + meta: + $ref: '#/components/schemas/Meta' + implicitRules: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "A reference to a set of rules that were followed when the\ + \ resource was constructed, and which must be understood when processing\ + \ the content. Often, this is a reference to an implementation guide\ + \ that defines the special rules along with other profiles etc." + comment: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: Additional comments about the appointment. + status: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: Participation status of the actor. + cancelationReason: + $ref: '#/components/schemas/CodeableConcept' + patientInstruction: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "While Appointment.comment contains information for internal\ + \ use, Appointment.patientInstructions is used to capture patient facing\ + \ information about the Appointment (e.g. please bring your referral\ + \ or fast from 8pm night before)." + parameters: + _lastUpdatedParam: + name: _lastUpdated + in: query + description: When the resource version last changed + required: false + style: form + explode: true + schema: + type: string + _securityParam: + name: _security + in: query + description: Security Labels applied to this resource + required: false + style: form + explode: true + schema: + type: string + _tagParam: + name: _tag + in: query + description: Tags applied to this resource + required: false + style: form + explode: true + schema: + type: string + _idParam: + name: _id + in: query + description: Logical id of this artifact + required: false + style: form + explode: true + schema: + type: string + _sourceParam: + name: _source + in: query + description: Identifies where the resource comes from + required: false + style: form + explode: true + schema: + type: string + _profileParam: + name: _profile + in: query + description: Profiles this resource claims to conform to + required: false + style: form + explode: true + schema: + type: string + securitySchemes: + default: + type: oauth2 + flows: + implicit: + authorizationUrl: https://localhost:8243/authorize + scopes: {} +x-wso2-oh-fhir-resourceType: Appointment +x-wso2-oh-fhir-profile: +- http://hl7.org/fhir/StructureDefinition/Appointment diff --git a/schedule-appointment-process-API/aggregate-service/oas/LocationAPI.yaml b/schedule-appointment-process-API/aggregate-service/oas/LocationAPI.yaml new file mode 100644 index 000000000..b13cacb6c --- /dev/null +++ b/schedule-appointment-process-API/aggregate-service/oas/LocationAPI.yaml @@ -0,0 +1,2061 @@ +openapi: 3.0.1 +info: + title: LocationAPI + description: "A simplified version of the HL7 FHIR API for Location resource.\n\ + Supported Profiles: \nhttp://hl7.org/fhir/StructureDefinition/Location\n" + contact: + name: API Support + url: https://wso2.com/contact/ + email: info@wso2.com + license: + name: Apache 2.0 + url: https://www.apache.org/licenses/LICENSE-2.0.html + version: 1.0.0 +tags: +- name: international +- name: Location +- name: 4.0.1 +paths: + /fhir/r4/Location: + get: + tags: + - GET + - Location + summary: search Location + description: This operation is used to search a Location + parameters: + - name: address-postalcode + in: query + description: A postal code specified in an address + required: false + schema: + type: string + x-wso2-oh-fhirType: string + - name: name + in: query + description: A portion of the location's name or alias + required: false + schema: + type: string + x-wso2-oh-fhirType: string + - name: address-use + in: query + description: A use code specified in an address + required: false + schema: + type: string + x-wso2-oh-fhirType: token + - name: partof + in: query + description: A location of which this location is a part + required: false + schema: + type: string + x-wso2-oh-fhirType: reference + - name: address-city + in: query + description: A city specified in an address + required: false + schema: + type: string + x-wso2-oh-fhirType: string + - name: operational-status + in: query + description: "Searches for locations (typically bed/room) that have an operational\ + \ status (e.g. contaminated, housekeeping)" + required: false + schema: + type: string + x-wso2-oh-fhirType: token + - name: address + in: query + description: A (part of the) address of the location + required: false + schema: + type: string + x-wso2-oh-fhirType: string + - name: address-country + in: query + description: A country specified in an address + required: false + schema: + type: string + x-wso2-oh-fhirType: string + - name: endpoint + in: query + description: Technical endpoints providing access to services operated for + the location + required: false + schema: + type: string + x-wso2-oh-fhirType: reference + - name: near + in: query + description: "Search for locations where the location.position is near to,\ + \ or within a specified distance of, the provided coordinates expressed\ + \ as [latitude]|[longitude]|[distance]|[units] (using the WGS84 datum, see\ + \ notes).\nIf the units are omitted, then kms should be assumed. If the\ + \ distance is omitted, then the server can use its own discretion as to\ + \ what distances should be considered near (and units are irrelevant)\n\n\ + Servers may search using various techniques that might have differing accuracies,\ + \ depending on implementation efficiency.\n\nRequires the near-distance\ + \ parameter to be provided also" + required: false + schema: + type: string + x-wso2-oh-fhirType: special + - name: identifier + in: query + description: An identifier for the location + required: false + schema: + type: string + x-wso2-oh-fhirType: token + - name: organization + in: query + description: Searches for locations that are managed by the provided organization + required: false + schema: + type: string + x-wso2-oh-fhirType: reference + - name: status + in: query + description: Searches for locations with a specific kind of status + required: false + schema: + type: string + x-wso2-oh-fhirType: token + - name: type + in: query + description: A code for the type of location + required: false + schema: + type: string + x-wso2-oh-fhirType: token + - name: address-state + in: query + description: A state specified in an address + required: false + schema: + type: string + x-wso2-oh-fhirType: string + - $ref: '#/components/parameters/_lastUpdatedParam' + - $ref: '#/components/parameters/_securityParam' + - $ref: '#/components/parameters/_tagParam' + - $ref: '#/components/parameters/_idParam' + - $ref: '#/components/parameters/_sourceParam' + - $ref: '#/components/parameters/_profileParam' + responses: + "200": + description: search Location operation successful + content: + application/fhir+json: + schema: + $ref: '#/components/schemas/Bundle' + security: + - default: [] + post: + tags: + - POST + - Location + summary: create Location + description: This operation is used to create a Location + responses: + "201": + description: create Location operation successful + security: + - default: [] + /fhir/r4/Location/{id}: + get: + tags: + - GET + - Location + summary: read Location + description: This operation is used to read a Location + parameters: + - name: id + in: path + description: logical identifier + required: true + schema: + type: string + responses: + "200": + description: read Location operation successful + content: + application/fhir+json: + schema: + $ref: '#/components/schemas/Location' + security: + - default: [] + put: + tags: + - PUT + - Location + summary: update Location + description: This operation is used to update a Location + parameters: + - name: id + in: path + description: logical identifier + required: true + schema: + type: string + responses: + "201": + description: update Location operation successful + security: + - default: [] + delete: + tags: + - DELETE + - Location + summary: delete Location + description: This operation is used to delete a Location + parameters: + - name: id + in: path + description: logical identifier + required: true + schema: + type: string + responses: + "204": + description: delete Location operation successful + security: + - default: [] +components: + schemas: + Resource: + required: + - resourceType + type: object + properties: + resourceType: + type: string + enum: + - Account + - ActivityDefinition + - AdverseEvent + - AllergyIntolerance + - Appointment + - AppointmentResponse + - AuditEvent + - Basic + - Binary + - BiologicallyDerivedProduct + - BodyStructure + - Bundle + - CapabilityStatement + - CarePlan + - CareTeam + - CatalogEntry + - ChargeItem + - ChargeItemDefinition + - Claim + - ClaimResponse + - ClinicalImpression + - CodeSystem + - Communication + - CommunicationRequest + - CompartmentDefinition + - Composition + - ConceptMap + - Condition + - Consent + - Contract + - Coverage + - CoverageEligibilityRequest + - CoverageEligibilityResponse + - DetectedIssue + - Device + - DeviceDefinition + - DeviceMetric + - DeviceRequest + - DeviceUseStatement + - DiagnosticReport + - DocumentManifest + - DocumentReference + - DomainResource + - EffectEvidenceSynthesis + - Encounter + - Endpoint + - EnrollmentRequest + - EnrollmentResponse + - EpisodeOfCare + - EventDefinition + - Evidence + - EvidenceVariable + - ExampleScenario + - ExplanationOfBenefit + - FamilyMemberHistory + - Flag + - Goal + - GraphDefinition + - Group + - GuidanceResponse + - HealthcareService + - ImagingStudy + - Immunization + - ImmunizationEvaluation + - ImmunizationRecommendation + - ImplementationGuide + - InsurancePlan + - Invoice + - Library + - Linkage + - List + - Location + - Measure + - MeasureReport + - Media + - Medication + - MedicationAdministration + - MedicationDispense + - MedicationKnowledge + - MedicationRequest + - MedicationStatement + - MedicinalProduct + - MedicinalProductAuthorization + - MedicinalProductContraindication + - MedicinalProductIndication + - MedicinalProductIngredient + - MedicinalProductInteraction + - MedicinalProductManufactured + - MedicinalProductPackaged + - MedicinalProductPharmaceutical + - MedicinalProductUndesirableEffect + - MessageDefinition + - MessageHeader + - MolecularSequence + - NamingSystem + - NutritionOrder + - Observation + - ObservationDefinition + - OperationDefinition + - OperationOutcome + - Organization + - OrganizationAffiliation + - Parameters + - Patient + - PaymentNotice + - PaymentReconciliation + - Person + - PlanDefinition + - Practitioner + - PractitionerRole + - Procedure + - Provenance + - Questionnaire + - QuestionnaireResponse + - RelatedPerson + - RequestGroup + - ResearchDefinition + - ResearchElementDefinition + - ResearchStudy + - ResearchSubject + - Resource + - RiskAssessment + - RiskEvidenceSynthesis + - Schedule + - SearchParameter + - ServiceRequest + - Slot + - Specimen + - SpecimenDefinition + - StructureDefinition + - StructureMap + - Subscription + - Substance + - SubstanceNucleicAcid + - SubstancePolymer + - SubstanceProtein + - SubstanceReferenceInformation + - SubstanceSourceMaterial + - SubstanceSpecification + - SupplyDelivery + - SupplyRequest + - Task + - TerminologyCapabilities + - TestReport + - TestScript + - ValueSet + - VerificationResult + - VisionPrescription + id: + pattern: "[A-Za-z0-9\\-\\.]{1,64}" + type: string + description: "The logical id of the resource, as used in the URL for the\ + \ resource. Once assigned, this value never changes." + meta: + $ref: '#/components/schemas/Meta' + implicitRules: + pattern: \S* + type: string + description: "A reference to a set of rules that were followed when the\ + \ resource was constructed, and which must be understood when processing\ + \ the content. Often, this is a reference to an implementation guide that\ + \ defines the special rules along with other profiles etc." + language: + pattern: "[^\\s]+(\\s[^\\s]+)*" + type: string + description: The base language in which the resource is written. + DomainResource: + allOf: + - $ref: '#/components/schemas/Resource' + - type: object + properties: + text: + $ref: '#/components/schemas/Narrative' + contained: + type: array + items: + $ref: '#/components/schemas/Resource' + extension: + type: array + items: + $ref: '#/components/schemas/Extension' + modifierExtension: + type: array + items: + $ref: '#/components/schemas/Extension' + Bundle: + required: + - type + example: + resourceType: Bundle + meta: + versionId: exaha1GMZU + lastUpdated: 2020-03-12T00:11:47.779-04:00 + source: OscBE5P0oL + profile: + - 2t1_PYz6sb + security: + - system: __ZQLAVVwf + version: VLbtqKcbsY + code: VUlDjytwgy + display: qiSsBMDgPt + userSelected: true + tag: + - system: zjCxD2PaBs + version: rzU1dChGRU + code: T_fA90_uZ3 + display: lX3NJdEblQ + userSelected: true + - code: ibm/complete-mock + implicitRules: vor6NZfU_z + language: L2CvMvoQCf + identifier: + use: temp + type: + coding: + - system: 2KSvg9_FAi + version: gGp8DOk9J1 + code: mfTsOuaMha + display: oWF_kySdMa + userSelected: true + text: JCfLMefieh + system: OD8o0wUurR + value: rB39S_eWKm + period: + start: 2020-03-12T00:11:47.781-04:00 + end: 2020-03-12T00:11:47.781-04:00 + type: message + timestamp: 2020-03-12T00:11:47.768-04:00 + total: 253899444 + link: + - relation: 7ntmg3QgsB + url: yqZC1h4OiP + entry: + - link: + - relation: BYqAgl7fxn + url: FjYy1I_fo0 + fullUrl: jRHNMRSGoH + search: + mode: outcome + score: 215939698769 + request: + method: HEAD + url: fsGmEqxt_V + ifNoneMatch: 9Ce9vVtTEJ + ifModifiedSince: 2020-03-12T00:11:47.776-04:00 + ifMatch: PtLujM597v + ifNoneExist: thVohqaRoO + response: + status: Vz647bKzDX + location: vG6ZG5JY3n + etag: UAy7mNeNeo + lastModified: 2020-03-12T00:11:47.773-04:00 + signature: + type: + - system: UXJhVBJtsw + version: dSN1eoXw7X + code: 7n8GNkS7ty + display: Ff82O7MvgK + userSelected: true + when: 2020-03-12T00:11:47.767-04:00 + who: + reference: Practitioner/8Jt_8Rtofu + type: Practitioner + identifier: + use: secondary + type: + coding: + - system: aOvIofeYmD + version: mNBmEi5RDA + code: sM5gtqK3Xw + display: aOf6nJImxy + userSelected: true + text: zaOFAoPxBA + system: C70kG_5CcM + value: TYMT3hKJFR + period: + start: 2020-03-12T00:11:47.765-04:00 + end: 2020-03-12T00:11:47.765-04:00 + display: 5vUkPEw2_I + onBehalfOf: + reference: Practitioner/PEch7CxGIg + type: Practitioner + identifier: + use: usual + type: + coding: + - system: ixnevWoHGy + version: hJQzXghlpb + code: h6NurXxnyH + display: C0fDviMSsU + userSelected: true + text: izhrMjXk74 + system: giGNRU5rWU + value: e7_ezY1vVp + period: + start: 2020-03-12T00:11:47.767-04:00 + end: 2020-03-12T00:11:47.767-04:00 + display: nWuUixICQd + targetFormat: F93ISQKaDY + sigFormat: Qx2S3AEiMQ + data: AGxIVG4= + allOf: + - $ref: '#/components/schemas/Resource' + - type: object + properties: + identifier: + $ref: '#/components/schemas/Identifier' + type: + type: string + description: Indicates the purpose of this bundle – how it is intended + to be used. + enum: + - document + - message + - transaction + - transaction-response + - batch + - batch-response + - history + - searchset + - collection + timestamp: + pattern: "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\\ + .[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))" + type: string + description: The date/time that the bundle was assembled – i.e. + when the resources were placed in the bundle. + total: + type: integer + description: "If a set of search matches, this is the total number of\ + \ entries of type 'match' across all pages in the search. It does not\ + \ include search.mode = 'include' or 'outcome' entries and it does not\ + \ provide a count of the number of entries in the Bundle." + format: int32 + link: + type: array + items: + $ref: '#/components/schemas/Bundle_Link' + entry: + type: array + items: + $ref: '#/components/schemas/Bundle_Entry' + signature: + $ref: '#/components/schemas/Signature' + OperationOutcome: + required: + - issue + example: + resourceType: OperationOutcome + meta: + versionId: aj7xYfDKGG + lastUpdated: 2020-03-12T00:11:56.482-04:00 + source: ZqswRdBz2V + profile: + - 7MtlUHdgF3 + security: + - system: eBZLDvfQS6 + version: 3loXo6Bekk + code: fApLgubn5v + display: hGDoUOaTiY + userSelected: true + tag: + - system: d6ZKFrRy9C + version: co9wqQZDjO + code: Z2JT_ZxmeR + display: f5JMtds3fb + userSelected: true + - code: ibm/complete-mock + implicitRules: FwNANOTUkD + language: iDvESiu0cB + text: + status: extensions + div:
+ issue: + - severity: warning + code: invariant + details: + coding: + - system: 9TiBhtaNhv + version: 38XIrYkjYf + code: s4dzxZ4dsW + display: tu3Q0RYWRq + userSelected: true + text: qW3nzpKNue + diagnostics: 4zXKgm6Eae + location: + - EmMlBkbb8W + expression: + - bSBqh22fAT + allOf: + - $ref: '#/components/schemas/DomainResource' + - type: object + properties: + issue: + type: array + items: + $ref: '#/components/schemas/OperationOutcome_Issue' + Bundle_Entry: + allOf: + - $ref: '#/components/schemas/BackboneElement' + - type: object + properties: + link: + type: array + items: + $ref: '#/components/schemas/Bundle_Link' + fullUrl: + pattern: \S* + type: string + description: "The Absolute URL for the resource. The fullUrl SHALL NOT\ + \ disagree with the id in the resource – i.e. if the fullUrl is\ + \ not a urn:uuid, the URL shall be version–independent URL consistent\ + \ with the Resource.id. The fullUrl is a version independent reference\ + \ to the resource. The fullUrl element SHALL have a value except that:\ + \ \n* fullUrl can be empty on a POST (although it does not need to when\ + \ specifying a temporary id for reference in the bundle)\n* Results\ + \ from operations might involve resources that are not identified." + resource: + $ref: '#/components/schemas/Resource' + search: + $ref: '#/components/schemas/Bundle_Entry_Search' + request: + $ref: '#/components/schemas/Bundle_Entry_Request' + response: + $ref: '#/components/schemas/Bundle_Entry_Response' + Bundle_Entry_Response: + required: + - status + allOf: + - $ref: '#/components/schemas/BackboneElement' + - type: object + properties: + status: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: The status code returned by processing this entry. The status + SHALL start with a 3 digit HTTP code (e.g. 404) and may contain the + standard HTTP description associated with the status code. + location: + pattern: \S* + type: string + description: "The location header created by processing this operation,\ + \ populated if the operation returns a location." + etag: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "The Etag for the resource, if the operation for the entry\ + \ produced a versioned resource (see [Resource Metadata and Versioning](http.html#versioning)\ + \ and [Managing Resource Contention](http.html#concurrency))." + lastModified: + pattern: "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\\ + .[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))" + type: string + description: The date/time that the resource was modified on the server. + outcome: + $ref: '#/components/schemas/Resource' + Bundle_Entry_Request: + required: + - method + - url + allOf: + - $ref: '#/components/schemas/BackboneElement' + - type: object + properties: + method: + type: string + description: "In a transaction or batch, this is the HTTP action to be\ + \ executed for this entry. In a history bundle, this indicates the HTTP\ + \ action that occurred." + enum: + - GET + - HEAD + - POST + - PUT + - DELETE + - PATCH + url: + pattern: \S* + type: string + description: "The URL for this entry, relative to the root (the address\ + \ to which the request is posted)." + ifNoneMatch: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "If the ETag values match, return a 304 Not Modified status.\ + \ See the API documentation for [\"Conditional Read\"](http.html#cread)." + ifModifiedSince: + pattern: "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\\ + .[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))" + type: string + description: "Only perform the operation if the last updated date matches.\ + \ See the API documentation for [\"Conditional Read\"](http.html#cread)." + ifMatch: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "Only perform the operation if the Etag value matches. For\ + \ more information, see the API section [\"Managing Resource Contention\"\ + ](http.html#concurrency)." + ifNoneExist: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "Instruct the server not to perform the create if a specified\ + \ resource already exists. For further information, see the API documentation\ + \ for [\"Conditional Create\"](http.html#ccreate). This is just the\ + \ query portion of the URL – what follows the \"?\" (not including\ + \ the \"?\")." + Bundle_Entry_Search: + allOf: + - $ref: '#/components/schemas/BackboneElement' + - type: object + properties: + mode: + type: string + description: "Why this entry is in the result set – whether it's\ + \ included as a match or because of an _include requirement, or to convey\ + \ information or warning information about the search process." + enum: + - match + - include + - outcome + score: + type: number + description: "When searching, the server's search ranking score for the\ + \ entry." + Bundle_Link: + required: + - relation + - url + allOf: + - $ref: '#/components/schemas/BackboneElement' + - type: object + properties: + relation: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "A name which details the functional use for this link –\ + \ see [http://www.iana.org/assignments/link–relations/link–relations.xhtml#link–relations–1](http://www.iana.org/assignments/link–relations/link–relations.xhtml#link–relations–1)." + url: + pattern: \S* + type: string + description: The reference details for the link. + OperationOutcome_Issue: + required: + - code + - severity + allOf: + - $ref: '#/components/schemas/BackboneElement' + - type: object + properties: + severity: + type: string + description: Indicates whether the issue indicates a variation from successful + processing. + enum: + - fatal + - error + - warning + - information + code: + type: string + description: "Describes the type of the issue. The system that creates\ + \ an OperationOutcome SHALL choose the most applicable code from the\ + \ IssueType value set, and may additional provide its own code for the\ + \ error in the details element." + enum: + - invalid + - structure + - required + - value + - invariant + - security + - login + - unknown + - expired + - forbidden + - suppressed + - processing + - not-supported + - duplicate + - multiple-matches + - not-found + - deleted + - too-long + - code-invalid + - extension + - too-costly + - business-rule + - conflict + - transient + - lock-error + - no-store + - exception + - timeout + - incomplete + - throttled + - informational + details: + $ref: '#/components/schemas/CodeableConcept' + diagnostics: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: Additional diagnostic information about the issue. + location: + type: array + items: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "This element is deprecated because it is XML specific.\ + \ It is replaced by issue.expression, which is format independent,\ + \ and simpler to parse. \n\nFor resource issues, this will be a simple\ + \ XPath limited to element names, repetition indicators and the default\ + \ child accessor that identifies one of the elements in the resource\ + \ that caused this issue to be raised. For HTTP errors, will be \"\ + http.\" + the parameter name." + expression: + type: array + items: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "A [simple subset of FHIRPath](fhirpath.html#simple) limited\ + \ to element names, repetition indicators and the default child accessor\ + \ that identifies one of the elements in the resource that caused\ + \ this issue to be raised." + Element: + type: object + properties: + id: + pattern: "[A-Za-z0-9\\-\\.]{1,64}" + type: string + description: Unique id for the element within a resource (for internal references). + This may be any string value that does not contain spaces. + extension: + type: array + items: + $ref: '#/components/schemas/Extension' + BackboneElement: + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + modifierExtension: + type: array + items: + $ref: '#/components/schemas/Extension' + Address: + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + use: + type: string + description: The purpose of this address. + enum: + - home + - work + - temp + - old + - billing + type: + type: string + description: Distinguishes between physical addresses (those you can visit) + and mailing addresses (e.g. PO Boxes and care–of addresses). Most + addresses are both. + enum: + - postal + - physical + - both + text: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: Specifies the entire address as it should be displayed e.g. + on a postal label. This may be provided instead of or as well as the + specific parts. + line: + type: array + items: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "This component contains the house number, apartment number,\ + \ street name, street direction, P.O. Box number, delivery hints,\ + \ and similar address information." + city: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "The name of the city, town, suburb, village or other community\ + \ or delivery center." + district: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: The name of the administrative area (county). + state: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: Sub–unit of a country with limited sovereignty in a + federally organized country. A code may be used if codes are in common + use (e.g. US 2 letter state codes). + postalCode: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: A postal code designating a region defined by the postal + service. + country: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: Country – a nation as commonly understood or generally + accepted. + period: + $ref: '#/components/schemas/Period' + Age: + allOf: + - $ref: '#/components/schemas/Quantity' + - type: object + properties: {} + Annotation: + required: + - text + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + authorReference: + $ref: '#/components/schemas/Reference' + authorString: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: The individual responsible for making the annotation. + time: + pattern: "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1])(T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\\ + .[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00)))?)?)?" + type: string + description: Indicates when this particular annotation was made. + text: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: The text of the annotation in markdown format. + Attachment: + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + contentType: + pattern: "[^\\s]+(\\s[^\\s]+)*" + type: string + description: Identifies the type of the data in the attachment and allows + a method to be chosen to interpret or render the data. Includes mime + type parameters such as charset where appropriate. + language: + pattern: "[^\\s]+(\\s[^\\s]+)*" + type: string + description: The human language of the content. The value can be any valid + value according to BCP 47. + data: + pattern: "(\\s*([0-9a-zA-Z\\+\\=]){4}\\s*)+" + type: string + description: "The actual data of the attachment – a sequence of\ + \ bytes, base64 encoded." + url: + pattern: \S* + type: string + description: A location where the data can be accessed. + size: + type: integer + description: "The number of bytes of data that make up this attachment\ + \ (before base64 encoding, if that is done)." + format: int32 + hash: + pattern: "(\\s*([0-9a-zA-Z\\+\\=]){4}\\s*)+" + type: string + description: The calculated hash of the data using SHA–1. Represented + using base64. + title: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: A label or set of text to display in place of the data. + creation: + pattern: "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1])(T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\\ + .[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00)))?)?)?" + type: string + description: The date that the attachment was first created. + CodeableConcept: + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + coding: + type: array + items: + $ref: '#/components/schemas/Coding' + text: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: A human language representation of the concept as seen/selected/uttered + by the user who entered the data and/or which represents the intended + meaning of the user. + Coding: + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + system: + pattern: \S* + type: string + description: The identification of the code system that defines the meaning + of the symbol in the code. + version: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "The version of the code system which was used when choosing\ + \ this code. Note that a well–maintained code system does not\ + \ need the version reported, because the meaning of codes is consistent\ + \ across versions. However this cannot consistently be assured, and\ + \ when the meaning is not guaranteed to be consistent, the version SHOULD\ + \ be exchanged." + code: + pattern: "[^\\s]+(\\s[^\\s]+)*" + type: string + description: A symbol in syntax defined by the system. The symbol may + be a predefined code or an expression in a syntax defined by the coding + system (e.g. post–coordination). + display: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "A representation of the meaning of the code in the system,\ + \ following the rules of the system." + userSelected: + type: boolean + description: Indicates that this coding was chosen by a user directly + – e.g. off a pick list of available items (codes or displays). + ContactPoint: + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + system: + type: string + description: Telecommunications form for contact point – what communications + system is required to make use of the contact. + enum: + - phone + - fax + - email + - pager + - url + - sms + - other + value: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "The actual contact point details, in a form that is meaningful\ + \ to the designated communication system (i.e. phone number or email\ + \ address)." + use: + type: string + description: Identifies the purpose for the contact point. + enum: + - home + - work + - temp + - old + - mobile + rank: + type: integer + description: Specifies a preferred order in which to use a set of contacts. + ContactPoints with lower rank values are more preferred than those with + higher rank values. + format: int32 + period: + $ref: '#/components/schemas/Period' + Count: + allOf: + - $ref: '#/components/schemas/Quantity' + - type: object + properties: {} + Distance: + allOf: + - $ref: '#/components/schemas/Quantity' + - type: object + properties: {} + Duration: + allOf: + - $ref: '#/components/schemas/Quantity' + - type: object + properties: {} + HumanName: + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + use: + type: string + description: Identifies the purpose for this name. + enum: + - usual + - official + - temp + - nickname + - anonymous + - old + - maiden + text: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: Specifies the entire name as it should be displayed e.g. + on an application UI. This may be provided instead of or as well as + the specific parts. + family: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: The part of a name that links to the genealogy. In some cultures + (e.g. Eritrea) the family name of a son is the first name of his father. + given: + type: array + items: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: Given name. + prefix: + type: array + items: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "Part of the name that is acquired as a title due to academic,\ + \ legal, employment or nobility status, etc. and that appears at the\ + \ start of the name." + suffix: + type: array + items: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "Part of the name that is acquired as a title due to academic,\ + \ legal, employment or nobility status, etc. and that appears at the\ + \ end of the name." + period: + $ref: '#/components/schemas/Period' + Identifier: + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + use: + type: string + description: The purpose of this identifier. + enum: + - usual + - official + - temp + - secondary + - old + type: + $ref: '#/components/schemas/CodeableConcept' + system: + pattern: \S* + type: string + description: "Establishes the namespace for the value – that is,\ + \ a URL that describes a set values that are unique." + value: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: The portion of the identifier typically relevant to the user + and which is unique within the context of the system. + period: + $ref: '#/components/schemas/Period' + assigner: + $ref: '#/components/schemas/Reference' + Money: + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + value: + type: number + description: Numerical value (with implicit precision). + currency: + pattern: "[^\\s]+(\\s[^\\s]+)*" + type: string + description: ISO 4217 Currency Code. + MoneyQuantity: + allOf: + - $ref: '#/components/schemas/Quantity' + - type: object + properties: {} + Period: + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + start: + pattern: "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1])(T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\\ + .[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00)))?)?)?" + type: string + description: The start of the period. The boundary is inclusive. + end: + pattern: "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1])(T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\\ + .[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00)))?)?)?" + type: string + description: "The end of the period. If the end of the period is missing,\ + \ it means no end was known or planned at the time the instance was\ + \ created. The start may be in the past, and the end date in the future,\ + \ which means that period is expected/planned to end at that time." + Quantity: + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + value: + type: number + description: The value of the measured amount. The value includes an implicit + precision in the presentation of the value. + comparator: + type: string + description: "How the value should be understood and represented –\ + \ whether the actual value is greater or less than the stated value\ + \ due to measurement issues; e.g. if the comparator is \"<\" , then\ + \ the real value is < stated value." + enum: + - < + - <= + - '>=' + - '>' + unit: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: A human–readable form of the unit. + system: + pattern: \S* + type: string + description: The identification of the system that provides the coded + form of the unit. + code: + pattern: "[^\\s]+(\\s[^\\s]+)*" + type: string + description: A computer processable form of the unit in some unit representation + system. + Range: + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + low: + $ref: '#/components/schemas/SimpleQuantity' + high: + $ref: '#/components/schemas/SimpleQuantity' + Ratio: + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + numerator: + $ref: '#/components/schemas/Quantity' + denominator: + $ref: '#/components/schemas/Quantity' + Reference: + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + reference: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "A reference to a location at which the other resource is\ + \ found. The reference may be a relative reference, in which case it\ + \ is relative to the service base URL, or an absolute URL that resolves\ + \ to the location where the resource is found. The reference may be\ + \ version specific or not. If the reference is not to a FHIR RESTful\ + \ server, then it should be assumed to be version specific. Internal\ + \ fragment references (start with '#') refer to contained resources." + type: + pattern: \S* + type: string + description: "The expected type of the target of the reference. If both\ + \ Reference.type and Reference.reference are populated and Reference.reference\ + \ is a FHIR URL, both SHALL be consistent.\n\nThe type is the Canonical\ + \ URL of Resource Definition that is the type this reference refers\ + \ to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/\ + \ e.g. \"Patient\" is a reference to http://hl7.org/fhir/StructureDefinition/Patient.\ + \ Absolute URLs are only allowed for logical models (and can only be\ + \ used in references in logical models, not resources)." + identifier: + $ref: '#/components/schemas/Identifier' + display: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: Plain text narrative that identifies the resource in addition + to the resource reference. + SampledData: + required: + - dimensions + - origin + - period + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + origin: + $ref: '#/components/schemas/SimpleQuantity' + period: + type: number + description: "The length of time between sampling times, measured in milliseconds." + factor: + type: number + description: A correction factor that is applied to the sampled data points + before they are added to the origin. + lowerLimit: + type: number + description: The lower limit of detection of the measured points. This + is needed if any of the data points have the value "L" (lower than detection + limit). + upperLimit: + type: number + description: The upper limit of detection of the measured points. This + is needed if any of the data points have the value "U" (higher than + detection limit). + dimensions: + type: integer + description: "The number of sample points at each time point. If this\ + \ value is greater than one, then the dimensions will be interlaced\ + \ – all the sample points for a point in time will be recorded\ + \ at once." + format: int32 + data: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "A series of data points which are decimal values separated\ + \ by a single space (character u20). The special values \"E\" (error),\ + \ \"L\" (below detection limit) and \"U\" (above detection limit) can\ + \ also be used in place of a decimal value." + SimpleQuantity: + allOf: + - $ref: '#/components/schemas/Quantity' + - type: object + properties: {} + Signature: + required: + - type + - when + - who + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + type: + type: array + items: + $ref: '#/components/schemas/Coding' + when: + pattern: "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\\ + .[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))" + type: string + description: When the digital signature was signed. + who: + $ref: '#/components/schemas/Reference' + onBehalfOf: + $ref: '#/components/schemas/Reference' + targetFormat: + pattern: "[^\\s]+(\\s[^\\s]+)*" + type: string + description: A mime type that indicates the technical format of the target + resources signed by the signature. + sigFormat: + pattern: "[^\\s]+(\\s[^\\s]+)*" + type: string + description: "A mime type that indicates the technical format of the signature.\ + \ Important mime types are application/signature+xml for X ML DigSig,\ + \ application/jose for JWS, and image/* for a graphical image of a signature,\ + \ etc." + data: + pattern: "(\\s*([0-9a-zA-Z\\+\\=]){4}\\s*)+" + type: string + description: The base64 encoding of the Signature content. When signature + is not recorded electronically this element would be empty. + Timing: + allOf: + - $ref: '#/components/schemas/BackboneElement' + - type: object + properties: + event: + type: array + items: + pattern: "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1])(T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\\ + .[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00)))?)?)?" + type: string + description: Identifies specific times when the event occurs. + repeat: + $ref: '#/components/schemas/Timing_Repeat' + code: + $ref: '#/components/schemas/CodeableConcept' + Timing_Repeat: + allOf: + - $ref: '#/components/schemas/BackboneElement' + - type: object + properties: + boundsDuration: + $ref: '#/components/schemas/Duration' + boundsRange: + $ref: '#/components/schemas/Range' + boundsPeriod: + $ref: '#/components/schemas/Period' + count: + type: integer + description: "A total count of the desired number of repetitions across\ + \ the duration of the entire timing specification. If countMax is present,\ + \ this element indicates the lower bound of the allowed range of count\ + \ values." + format: int32 + countMax: + type: integer + description: "If present, indicates that the count is a range –\ + \ so to perform the action between [count] and [countMax] times." + format: int32 + duration: + type: number + description: "How long this thing happens for when it happens. If durationMax\ + \ is present, this element indicates the lower bound of the allowed\ + \ range of the duration." + durationMax: + type: number + description: "If present, indicates that the duration is a range –\ + \ so to perform the action between [duration] and [durationMax] time\ + \ length." + durationUnit: + type: string + description: "The units of time for the duration, in UCUM units." + enum: + - s + - min + - h + - d + - wk + - mo + - a + frequency: + type: integer + description: "The number of times to repeat the action within the specified\ + \ period. If frequencyMax is present, this element indicates the lower\ + \ bound of the allowed range of the frequency." + format: int32 + frequencyMax: + type: integer + description: "If present, indicates that the frequency is a range –\ + \ so to repeat between [frequency] and [frequencyMax] times within the\ + \ period or period range." + format: int32 + period: + type: number + description: "Indicates the duration of time over which repetitions are\ + \ to occur; e.g. to express \"3 times per day\", 3 would be the frequency\ + \ and \"1 day\" would be the period. If periodMax is present, this element\ + \ indicates the lower bound of the allowed range of the period length." + periodMax: + type: number + description: "If present, indicates that the period is a range from [period]\ + \ to [periodMax], allowing expressing concepts such as \"do this once\ + \ every 3–5 days." + periodUnit: + type: string + description: The units of time for the period in UCUM units. + enum: + - s + - min + - h + - d + - wk + - mo + - a + dayOfWeek: + type: array + items: + type: string + description: "If one or more days of week is provided, then the action\ + \ happens only on the specified day(s)." + enum: + - mon + - tue + - wed + - thu + - fri + - sat + - sun + timeOfDay: + type: array + items: + pattern: "([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\.[0-9]+)?" + type: string + description: Specified time of day for action to take place. + when: + type: array + items: + type: string + description: "An approximate time period during the day, potentially\ + \ linked to an event of daily living that indicates when the action\ + \ should occur." + enum: + - MORN + - MORN.early + - MORN.late + - NOON + - AFT + - AFT.early + - AFT.late + - EVE + - EVE.early + - EVE.late + - NIGHT + - PHS + - HS + - WAKE + - C + - CM + - CD + - CV + - AC + - ACM + - ACD + - ACV + - PC + - PCM + - PCD + - PCV + offset: + type: integer + description: "The number of minutes from the event. If the event code\ + \ does not indicate whether the minutes is before or after the event,\ + \ then the offset is assumed to be after the event." + format: int32 + ContactDetail: + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + name: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: The name of an individual to contact. + telecom: + type: array + items: + $ref: '#/components/schemas/ContactPoint' + RelatedArtifact: + required: + - type + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + type: + type: string + description: The type of relationship to the related artifact. + enum: + - documentation + - justification + - citation + - predecessor + - successor + - derived-from + - depends-on + - composed-of + label: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "A short label that can be used to reference the citation\ + \ from elsewhere in the containing artifact, such as a footnote index." + display: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "A brief description of the document or knowledge resource\ + \ being referenced, suitable for display to a consumer." + citation: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: A bibliographic citation for the related artifact. This text + SHOULD be formatted according to an accepted citation format. + url: + pattern: \S* + type: string + description: A url for the artifact that can be followed to access the + actual content. + document: + $ref: '#/components/schemas/Attachment' + resource: + pattern: \S* + type: string + description: "The related resource, such as a library, value set, profile,\ + \ or other knowledge resource." + UsageContext: + required: + - code + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + code: + $ref: '#/components/schemas/Coding' + valueCodeableConcept: + $ref: '#/components/schemas/CodeableConcept' + valueQuantity: + $ref: '#/components/schemas/Quantity' + valueRange: + $ref: '#/components/schemas/Range' + valueReference: + $ref: '#/components/schemas/Reference' + Meta: + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + versionId: + pattern: "[A-Za-z0-9\\-\\.]{1,64}" + type: string + description: "The version specific identifier, as it appears in the version\ + \ portion of the URL. This value changes when the resource is created,\ + \ updated, or deleted." + lastUpdated: + pattern: "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\\ + .[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))" + type: string + description: When the resource last changed – e.g. when the version + changed. + source: + pattern: \S* + type: string + description: "A uri that identifies the source system of the resource.\ + \ This provides a minimal amount of [Provenance](provenance.html#) information\ + \ that can be used to track or differentiate the source of information\ + \ in the resource. The source may identify another FHIR server, document,\ + \ message, database, etc." + profile: + type: array + items: + pattern: \S* + type: string + description: "A list of profiles (references to [StructureDefinition](structuredefinition.html#)\ + \ resources) that this resource claims to conform to. The URL is a\ + \ reference to [StructureDefinition.url](structuredefinition–definitions.html#StructureDefinition.url)." + security: + type: array + items: + $ref: '#/components/schemas/Coding' + tag: + type: array + items: + $ref: '#/components/schemas/Coding' + Narrative: + required: + - div + - status + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + status: + type: string + description: "The status of the narrative – whether it's entirely\ + \ generated (from just the defined data or the extensions too), or whether\ + \ a human authored it and it may contain additional data." + enum: + - generated + - extensions + - additional + - empty + div: + type: string + description: "The actual narrative content, a stripped down version of\ + \ XHTML." + Extension: + required: + - url + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + url: + pattern: \S* + type: string + description: Source of the definition for the extension code – a + logical name or a URL. + valueBase64Binary: + pattern: "(\\s*([0-9a-zA-Z\\+\\=]){4}\\s*)+" + type: string + description: "Value of extension – must be one of a constrained\ + \ set of the data types (see [Extensibility](extensibility.html) for\ + \ a list)." + valueBoolean: + type: boolean + description: "Value of extension – must be one of a constrained\ + \ set of the data types (see [Extensibility](extensibility.html) for\ + \ a list)." + valueCanonical: + pattern: \S* + type: string + description: "Value of extension – must be one of a constrained\ + \ set of the data types (see [Extensibility](extensibility.html) for\ + \ a list)." + valueCode: + pattern: "[^\\s]+(\\s[^\\s]+)*" + type: string + description: "Value of extension – must be one of a constrained\ + \ set of the data types (see [Extensibility](extensibility.html) for\ + \ a list)." + valueDate: + pattern: "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1]))?)?" + type: string + description: "Value of extension – must be one of a constrained\ + \ set of the data types (see [Extensibility](extensibility.html) for\ + \ a list)." + valueDateTime: + pattern: "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1])(T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\\ + .[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00)))?)?)?" + type: string + description: "Value of extension – must be one of a constrained\ + \ set of the data types (see [Extensibility](extensibility.html) for\ + \ a list)." + valueDecimal: + type: number + description: "Value of extension – must be one of a constrained\ + \ set of the data types (see [Extensibility](extensibility.html) for\ + \ a list)." + valueId: + pattern: "[A-Za-z0-9\\-\\.]{1,64}" + type: string + description: "Value of extension – must be one of a constrained\ + \ set of the data types (see [Extensibility](extensibility.html) for\ + \ a list)." + valueInstant: + pattern: "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\\ + .[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))" + type: string + description: "Value of extension – must be one of a constrained\ + \ set of the data types (see [Extensibility](extensibility.html) for\ + \ a list)." + valueInteger: + type: integer + description: "Value of extension – must be one of a constrained\ + \ set of the data types (see [Extensibility](extensibility.html) for\ + \ a list)." + format: int32 + valueMarkdown: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "Value of extension – must be one of a constrained\ + \ set of the data types (see [Extensibility](extensibility.html) for\ + \ a list)." + valueOid: + pattern: "urn:oid:[0-2](\\.(0|[1-9][0-9]*))+" + type: string + description: "Value of extension – must be one of a constrained\ + \ set of the data types (see [Extensibility](extensibility.html) for\ + \ a list)." + valuePositiveInt: + type: integer + description: "Value of extension – must be one of a constrained\ + \ set of the data types (see [Extensibility](extensibility.html) for\ + \ a list)." + format: int32 + valueString: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "Value of extension – must be one of a constrained\ + \ set of the data types (see [Extensibility](extensibility.html) for\ + \ a list)." + valueTime: + pattern: "([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\.[0-9]+)?" + type: string + description: "Value of extension – must be one of a constrained\ + \ set of the data types (see [Extensibility](extensibility.html) for\ + \ a list)." + valueUnsignedInt: + type: integer + description: "Value of extension – must be one of a constrained\ + \ set of the data types (see [Extensibility](extensibility.html) for\ + \ a list)." + format: int32 + valueUri: + pattern: \S* + type: string + description: "Value of extension – must be one of a constrained\ + \ set of the data types (see [Extensibility](extensibility.html) for\ + \ a list)." + valueUrl: + pattern: \S* + type: string + description: "Value of extension – must be one of a constrained\ + \ set of the data types (see [Extensibility](extensibility.html) for\ + \ a list)." + valueUuid: + pattern: "urn:uuid:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}" + type: string + description: "Value of extension – must be one of a constrained\ + \ set of the data types (see [Extensibility](extensibility.html) for\ + \ a list)." + valueAddress: + $ref: '#/components/schemas/Address' + valueAge: + $ref: '#/components/schemas/Age' + valueAnnotation: + $ref: '#/components/schemas/Annotation' + valueAttachment: + $ref: '#/components/schemas/Attachment' + valueCodeableConcept: + $ref: '#/components/schemas/CodeableConcept' + valueCoding: + $ref: '#/components/schemas/Coding' + valueContactPoint: + $ref: '#/components/schemas/ContactPoint' + valueCount: + $ref: '#/components/schemas/Count' + valueDistance: + $ref: '#/components/schemas/Distance' + valueDuration: + $ref: '#/components/schemas/Duration' + valueHumanName: + $ref: '#/components/schemas/HumanName' + valueIdentifier: + $ref: '#/components/schemas/Identifier' + valueMoney: + $ref: '#/components/schemas/Money' + valuePeriod: + $ref: '#/components/schemas/Period' + valueQuantity: + $ref: '#/components/schemas/Quantity' + valueRange: + $ref: '#/components/schemas/Range' + valueRatio: + $ref: '#/components/schemas/Ratio' + valueReference: + $ref: '#/components/schemas/Reference' + valueSampledData: + $ref: '#/components/schemas/SampledData' + valueSignature: + $ref: '#/components/schemas/Signature' + valueTiming: + $ref: '#/components/schemas/Timing' + valueContactDetail: + $ref: '#/components/schemas/ContactDetail' + valueRelatedArtifact: + $ref: '#/components/schemas/RelatedArtifact' + valueUsageContext: + $ref: '#/components/schemas/UsageContext' + valueMeta: + $ref: '#/components/schemas/Meta' + Location: + required: + - latitude + - longitude + allOf: + - $ref: '#/components/schemas/DomainResource' + - type: object + properties: + operationalStatus: + $ref: '#/components/schemas/Coding' + altitude: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: Altitude. The value domain and the interpretation are the + same as for the text of the altitude element in KML (see notes below). + partOf: + $ref: '#/components/schemas/Reference' + extension: + $ref: '#/components/schemas/Extension' + modifierExtension: + $ref: '#/components/schemas/Extension' + latitude: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: Latitude. The value domain and the interpretation are the + same as for the text of the latitude element in KML (see notes below). + openingTime: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: Time that the Location opens. + description: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "Description of the Location, which helps in finding or referencing\ + \ the place." + language: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: The base language in which the resource is written. + hoursOfOperation: + $ref: '#/components/schemas/BackboneElement' + type: + $ref: '#/components/schemas/CodeableConcept' + mode: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: Indicates whether a resource instance represents a specific + location or a class of locations. + allDay: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: The Location is open all day. + endpoint: + $ref: '#/components/schemas/Reference' + closingTime: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: Time that the Location closes. + alias: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "A list of alternate names that the location is known as,\ + \ or was known as, in the past." + telecom: + $ref: '#/components/schemas/ContactPoint' + id: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: Unique id for the element within a resource (for internal + references). This may be any string value that does not contain spaces. + text: + $ref: '#/components/schemas/Narrative' + longitude: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: Longitude. The value domain and the interpretation are the + same as for the text of the longitude element in KML (see notes below). + identifier: + $ref: '#/components/schemas/Identifier' + address: + $ref: '#/components/schemas/Address' + physicalType: + $ref: '#/components/schemas/CodeableConcept' + daysOfWeek: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: Indicates which days of the week are available between the + start and end Times. + contained: + $ref: '#/components/schemas/Resource' + managingOrganization: + $ref: '#/components/schemas/Reference' + meta: + $ref: '#/components/schemas/Meta' + name: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: Name of the location as used by humans. Does not need to + be unique. + implicitRules: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "A reference to a set of rules that were followed when the\ + \ resource was constructed, and which must be understood when processing\ + \ the content. Often, this is a reference to an implementation guide\ + \ that defines the special rules along with other profiles etc." + position: + $ref: '#/components/schemas/BackboneElement' + availabilityExceptions: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "A description of when the locations opening ours are different\ + \ to normal, e.g. public holiday availability. Succinctly describing\ + \ all possible exceptions to normal site availability as detailed in\ + \ the opening hours Times." + status: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "The status property covers the general availability of the\ + \ resource, not the current value which may be covered by the operationStatus,\ + \ or by a schedule/slots if they are configured for the location." + parameters: + _lastUpdatedParam: + name: _lastUpdated + in: query + description: When the resource version last changed + required: false + style: form + explode: true + schema: + type: string + _securityParam: + name: _security + in: query + description: Security Labels applied to this resource + required: false + style: form + explode: true + schema: + type: string + _tagParam: + name: _tag + in: query + description: Tags applied to this resource + required: false + style: form + explode: true + schema: + type: string + _idParam: + name: _id + in: query + description: Logical id of this artifact + required: false + style: form + explode: true + schema: + type: string + _sourceParam: + name: _source + in: query + description: Identifies where the resource comes from + required: false + style: form + explode: true + schema: + type: string + _profileParam: + name: _profile + in: query + description: Profiles this resource claims to conform to + required: false + style: form + explode: true + schema: + type: string + securitySchemes: + default: + type: oauth2 + flows: + implicit: + authorizationUrl: https://localhost:8243/authorize + scopes: {} +x-wso2-oh-fhir-resourceType: Location +x-wso2-oh-fhir-profile: +- http://hl7.org/fhir/StructureDefinition/Location diff --git a/schedule-appointment-process-API/aggregate-service/oas/PractitionerAPI.yaml b/schedule-appointment-process-API/aggregate-service/oas/PractitionerAPI.yaml new file mode 100644 index 000000000..26d680307 --- /dev/null +++ b/schedule-appointment-process-API/aggregate-service/oas/PractitionerAPI.yaml @@ -0,0 +1,2068 @@ +openapi: 3.0.1 +info: + title: PractitionerAPI + description: "A simplified version of the HL7 FHIR API for Practitioner resource.\n\ + Supported Profiles: \nhttp://hl7.org/fhir/StructureDefinition/Practitioner\n" + contact: + name: API Support + url: https://wso2.com/contact/ + email: info@wso2.com + license: + name: Apache 2.0 + url: https://www.apache.org/licenses/LICENSE-2.0.html + version: 1.0.0 +tags: +- name: international +- name: Practitioner +- name: 4.0.1 +paths: + /fhir/r4/Practitioner: + get: + tags: + - GET + - Practitioner + summary: search Practitioner + description: This operation is used to search a Practitioner + parameters: + - name: phone + in: query + description: "Multiple Resources: \r\n\r\n* [Patient](patient.html): A value\ + \ in a phone contact\r\n* [Person](person.html): A value in a phone contact\r\ + \n* [Practitioner](practitioner.html): A value in a phone contact\r\n* [PractitionerRole](practitionerrole.html):\ + \ A value in a phone contact\r\n* [RelatedPerson](relatedperson.html): A\ + \ value in a phone contact" + required: false + schema: + type: string + x-wso2-oh-fhirType: token + - name: name + in: query + description: "A server defined search that may match any of the string fields\ + \ in the HumanName, including family, give, prefix, suffix, suffix, and/or\ + \ text" + required: false + schema: + type: string + x-wso2-oh-fhirType: string + - name: address-country + in: query + description: "Multiple Resources: \r\n\r\n* [Patient](patient.html): A country\ + \ specified in an address\r\n* [Person](person.html): A country specified\ + \ in an address\r\n* [Practitioner](practitioner.html): A country specified\ + \ in an address\r\n* [RelatedPerson](relatedperson.html): A country specified\ + \ in an address" + required: false + schema: + type: string + x-wso2-oh-fhirType: string + - name: address-state + in: query + description: "Multiple Resources: \r\n\r\n* [Patient](patient.html): A state\ + \ specified in an address\r\n* [Person](person.html): A state specified\ + \ in an address\r\n* [Practitioner](practitioner.html): A state specified\ + \ in an address\r\n* [RelatedPerson](relatedperson.html): A state specified\ + \ in an address" + required: false + schema: + type: string + x-wso2-oh-fhirType: string + - name: address-use + in: query + description: "Multiple Resources: \r\n\r\n* [Patient](patient.html): A use\ + \ code specified in an address\r\n* [Person](person.html): A use code specified\ + \ in an address\r\n* [Practitioner](practitioner.html): A use code specified\ + \ in an address\r\n* [RelatedPerson](relatedperson.html): A use code specified\ + \ in an address" + required: false + schema: + type: string + x-wso2-oh-fhirType: token + - name: active + in: query + description: Whether the practitioner record is active + required: false + schema: + type: string + x-wso2-oh-fhirType: token + - name: address-postalcode + in: query + description: "Multiple Resources: \r\n\r\n* [Patient](patient.html): A postalCode\ + \ specified in an address\r\n* [Person](person.html): A postal code specified\ + \ in an address\r\n* [Practitioner](practitioner.html): A postalCode specified\ + \ in an address\r\n* [RelatedPerson](relatedperson.html): A postal code\ + \ specified in an address" + required: false + schema: + type: string + x-wso2-oh-fhirType: string + - name: given + in: query + description: "Multiple Resources: \r\n\r\n* [Patient](patient.html): A portion\ + \ of the given name of the patient\r\n* [Practitioner](practitioner.html):\ + \ A portion of the given name" + required: false + schema: + type: string + x-wso2-oh-fhirType: string + - name: address-city + in: query + description: "Multiple Resources: \r\n\r\n* [Patient](patient.html): A city\ + \ specified in an address\r\n* [Person](person.html): A city specified in\ + \ an address\r\n* [Practitioner](practitioner.html): A city specified in\ + \ an address\r\n* [RelatedPerson](relatedperson.html): A city specified\ + \ in an address" + required: false + schema: + type: string + x-wso2-oh-fhirType: string + - name: gender + in: query + description: "Multiple Resources: \r\n\r\n* [Patient](patient.html): Gender\ + \ of the patient\r\n* [Person](person.html): The gender of the person\r\n\ + * [Practitioner](practitioner.html): Gender of the practitioner\r\n* [RelatedPerson](relatedperson.html):\ + \ Gender of the related person" + required: false + schema: + type: string + x-wso2-oh-fhirType: token + - name: phonetic + in: query + description: "Multiple Resources: \r\n\r\n* [Patient](patient.html): A portion\ + \ of either family or given name using some kind of phonetic matching algorithm\r\ + \n* [Person](person.html): A portion of name using some kind of phonetic\ + \ matching algorithm\r\n* [Practitioner](practitioner.html): A portion of\ + \ either family or given name using some kind of phonetic matching algorithm\r\ + \n* [RelatedPerson](relatedperson.html): A portion of name using some kind\ + \ of phonetic matching algorithm" + required: false + schema: + type: string + x-wso2-oh-fhirType: string + - name: family + in: query + description: "Multiple Resources: \r\n\r\n* [Patient](patient.html): A portion\ + \ of the family name of the patient\r\n* [Practitioner](practitioner.html):\ + \ A portion of the family name" + required: false + schema: + type: string + x-wso2-oh-fhirType: string + - name: telecom + in: query + description: "Multiple Resources: \r\n\r\n* [Patient](patient.html): The value\ + \ in any kind of telecom details of the patient\r\n* [Person](person.html):\ + \ The value in any kind of contact\r\n* [Practitioner](practitioner.html):\ + \ The value in any kind of contact\r\n* [PractitionerRole](practitionerrole.html):\ + \ The value in any kind of contact\r\n* [RelatedPerson](relatedperson.html):\ + \ The value in any kind of contact" + required: false + schema: + type: string + x-wso2-oh-fhirType: token + - name: email + in: query + description: "Multiple Resources: \r\n\r\n* [Patient](patient.html): A value\ + \ in an email contact\r\n* [Person](person.html): A value in an email contact\r\ + \n* [Practitioner](practitioner.html): A value in an email contact\r\n*\ + \ [PractitionerRole](practitionerrole.html): A value in an email contact\r\ + \n* [RelatedPerson](relatedperson.html): A value in an email contact" + required: false + schema: + type: string + x-wso2-oh-fhirType: token + - name: identifier + in: query + description: A practitioner's Identifier + required: false + schema: + type: string + x-wso2-oh-fhirType: token + - name: address + in: query + description: "Multiple Resources: \r\n\r\n* [Patient](patient.html): A server\ + \ defined search that may match any of the string fields in the Address,\ + \ including line, city, district, state, country, postalCode, and/or text\r\ + \n* [Person](person.html): A server defined search that may match any of\ + \ the string fields in the Address, including line, city, district, state,\ + \ country, postalCode, and/or text\r\n* [Practitioner](practitioner.html):\ + \ A server defined search that may match any of the string fields in the\ + \ Address, including line, city, district, state, country, postalCode, and/or\ + \ text\r\n* [RelatedPerson](relatedperson.html): A server defined search\ + \ that may match any of the string fields in the Address, including line,\ + \ city, district, state, country, postalCode, and/or text" + required: false + schema: + type: string + x-wso2-oh-fhirType: string + - name: communication + in: query + description: One of the languages that the practitioner can communicate with + required: false + schema: + type: string + x-wso2-oh-fhirType: token + - $ref: '#/components/parameters/_lastUpdatedParam' + - $ref: '#/components/parameters/_securityParam' + - $ref: '#/components/parameters/_tagParam' + - $ref: '#/components/parameters/_idParam' + - $ref: '#/components/parameters/_sourceParam' + - $ref: '#/components/parameters/_profileParam' + responses: + "200": + description: search Practitioner operation successful + content: + application/fhir+json: + schema: + $ref: '#/components/schemas/Bundle' + security: + - default: [] + post: + tags: + - POST + - Practitioner + summary: create Practitioner + description: This operation is used to create a Practitioner + responses: + "201": + description: create Practitioner operation successful + security: + - default: [] + /fhir/r4/Practitioner/{id}: + get: + tags: + - GET + - Practitioner + summary: read Practitioner + description: This operation is used to read a Practitioner + parameters: + - name: id + in: path + description: logical identifier + required: true + schema: + type: string + responses: + "200": + description: read Practitioner operation successful + content: + application/fhir+json: + schema: + $ref: '#/components/schemas/Practitioner' + security: + - default: [] + put: + tags: + - PUT + - Practitioner + summary: update Practitioner + description: This operation is used to update a Practitioner + parameters: + - name: id + in: path + description: logical identifier + required: true + schema: + type: string + responses: + "201": + description: update Practitioner operation successful + security: + - default: [] + delete: + tags: + - DELETE + - Practitioner + summary: delete Practitioner + description: This operation is used to delete a Practitioner + parameters: + - name: id + in: path + description: logical identifier + required: true + schema: + type: string + responses: + "204": + description: delete Practitioner operation successful + security: + - default: [] +components: + schemas: + Resource: + required: + - resourceType + type: object + properties: + resourceType: + type: string + enum: + - Account + - ActivityDefinition + - AdverseEvent + - AllergyIntolerance + - Appointment + - AppointmentResponse + - AuditEvent + - Basic + - Binary + - BiologicallyDerivedProduct + - BodyStructure + - Bundle + - CapabilityStatement + - CarePlan + - CareTeam + - CatalogEntry + - ChargeItem + - ChargeItemDefinition + - Claim + - ClaimResponse + - ClinicalImpression + - CodeSystem + - Communication + - CommunicationRequest + - CompartmentDefinition + - Composition + - ConceptMap + - Condition + - Consent + - Contract + - Coverage + - CoverageEligibilityRequest + - CoverageEligibilityResponse + - DetectedIssue + - Device + - DeviceDefinition + - DeviceMetric + - DeviceRequest + - DeviceUseStatement + - DiagnosticReport + - DocumentManifest + - DocumentReference + - DomainResource + - EffectEvidenceSynthesis + - Encounter + - Endpoint + - EnrollmentRequest + - EnrollmentResponse + - EpisodeOfCare + - EventDefinition + - Evidence + - EvidenceVariable + - ExampleScenario + - ExplanationOfBenefit + - FamilyMemberHistory + - Flag + - Goal + - GraphDefinition + - Group + - GuidanceResponse + - HealthcareService + - ImagingStudy + - Immunization + - ImmunizationEvaluation + - ImmunizationRecommendation + - ImplementationGuide + - InsurancePlan + - Invoice + - Library + - Linkage + - List + - Location + - Measure + - MeasureReport + - Media + - Medication + - MedicationAdministration + - MedicationDispense + - MedicationKnowledge + - MedicationRequest + - MedicationStatement + - MedicinalProduct + - MedicinalProductAuthorization + - MedicinalProductContraindication + - MedicinalProductIndication + - MedicinalProductIngredient + - MedicinalProductInteraction + - MedicinalProductManufactured + - MedicinalProductPackaged + - MedicinalProductPharmaceutical + - MedicinalProductUndesirableEffect + - MessageDefinition + - MessageHeader + - MolecularSequence + - NamingSystem + - NutritionOrder + - Observation + - ObservationDefinition + - OperationDefinition + - OperationOutcome + - Organization + - OrganizationAffiliation + - Parameters + - Patient + - PaymentNotice + - PaymentReconciliation + - Person + - PlanDefinition + - Practitioner + - PractitionerRole + - Procedure + - Provenance + - Questionnaire + - QuestionnaireResponse + - RelatedPerson + - RequestGroup + - ResearchDefinition + - ResearchElementDefinition + - ResearchStudy + - ResearchSubject + - Resource + - RiskAssessment + - RiskEvidenceSynthesis + - Schedule + - SearchParameter + - ServiceRequest + - Slot + - Specimen + - SpecimenDefinition + - StructureDefinition + - StructureMap + - Subscription + - Substance + - SubstanceNucleicAcid + - SubstancePolymer + - SubstanceProtein + - SubstanceReferenceInformation + - SubstanceSourceMaterial + - SubstanceSpecification + - SupplyDelivery + - SupplyRequest + - Task + - TerminologyCapabilities + - TestReport + - TestScript + - ValueSet + - VerificationResult + - VisionPrescription + id: + pattern: "[A-Za-z0-9\\-\\.]{1,64}" + type: string + description: "The logical id of the resource, as used in the URL for the\ + \ resource. Once assigned, this value never changes." + meta: + $ref: '#/components/schemas/Meta' + implicitRules: + pattern: \S* + type: string + description: "A reference to a set of rules that were followed when the\ + \ resource was constructed, and which must be understood when processing\ + \ the content. Often, this is a reference to an implementation guide that\ + \ defines the special rules along with other profiles etc." + language: + pattern: "[^\\s]+(\\s[^\\s]+)*" + type: string + description: The base language in which the resource is written. + DomainResource: + allOf: + - $ref: '#/components/schemas/Resource' + - type: object + properties: + text: + $ref: '#/components/schemas/Narrative' + contained: + type: array + items: + $ref: '#/components/schemas/Resource' + extension: + type: array + items: + $ref: '#/components/schemas/Extension' + modifierExtension: + type: array + items: + $ref: '#/components/schemas/Extension' + Bundle: + required: + - type + example: + resourceType: Bundle + meta: + versionId: exaha1GMZU + lastUpdated: 2020-03-12T00:11:47.779-04:00 + source: OscBE5P0oL + profile: + - 2t1_PYz6sb + security: + - system: __ZQLAVVwf + version: VLbtqKcbsY + code: VUlDjytwgy + display: qiSsBMDgPt + userSelected: true + tag: + - system: zjCxD2PaBs + version: rzU1dChGRU + code: T_fA90_uZ3 + display: lX3NJdEblQ + userSelected: true + - code: ibm/complete-mock + implicitRules: vor6NZfU_z + language: L2CvMvoQCf + identifier: + use: temp + type: + coding: + - system: 2KSvg9_FAi + version: gGp8DOk9J1 + code: mfTsOuaMha + display: oWF_kySdMa + userSelected: true + text: JCfLMefieh + system: OD8o0wUurR + value: rB39S_eWKm + period: + start: 2020-03-12T00:11:47.781-04:00 + end: 2020-03-12T00:11:47.781-04:00 + type: message + timestamp: 2020-03-12T00:11:47.768-04:00 + total: 253899444 + link: + - relation: 7ntmg3QgsB + url: yqZC1h4OiP + entry: + - link: + - relation: BYqAgl7fxn + url: FjYy1I_fo0 + fullUrl: jRHNMRSGoH + search: + mode: outcome + score: 215939698769 + request: + method: HEAD + url: fsGmEqxt_V + ifNoneMatch: 9Ce9vVtTEJ + ifModifiedSince: 2020-03-12T00:11:47.776-04:00 + ifMatch: PtLujM597v + ifNoneExist: thVohqaRoO + response: + status: Vz647bKzDX + location: vG6ZG5JY3n + etag: UAy7mNeNeo + lastModified: 2020-03-12T00:11:47.773-04:00 + signature: + type: + - system: UXJhVBJtsw + version: dSN1eoXw7X + code: 7n8GNkS7ty + display: Ff82O7MvgK + userSelected: true + when: 2020-03-12T00:11:47.767-04:00 + who: + reference: Practitioner/8Jt_8Rtofu + type: Practitioner + identifier: + use: secondary + type: + coding: + - system: aOvIofeYmD + version: mNBmEi5RDA + code: sM5gtqK3Xw + display: aOf6nJImxy + userSelected: true + text: zaOFAoPxBA + system: C70kG_5CcM + value: TYMT3hKJFR + period: + start: 2020-03-12T00:11:47.765-04:00 + end: 2020-03-12T00:11:47.765-04:00 + display: 5vUkPEw2_I + onBehalfOf: + reference: Practitioner/PEch7CxGIg + type: Practitioner + identifier: + use: usual + type: + coding: + - system: ixnevWoHGy + version: hJQzXghlpb + code: h6NurXxnyH + display: C0fDviMSsU + userSelected: true + text: izhrMjXk74 + system: giGNRU5rWU + value: e7_ezY1vVp + period: + start: 2020-03-12T00:11:47.767-04:00 + end: 2020-03-12T00:11:47.767-04:00 + display: nWuUixICQd + targetFormat: F93ISQKaDY + sigFormat: Qx2S3AEiMQ + data: AGxIVG4= + allOf: + - $ref: '#/components/schemas/Resource' + - type: object + properties: + identifier: + $ref: '#/components/schemas/Identifier' + type: + type: string + description: Indicates the purpose of this bundle – how it is intended + to be used. + enum: + - document + - message + - transaction + - transaction-response + - batch + - batch-response + - history + - searchset + - collection + timestamp: + pattern: "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\\ + .[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))" + type: string + description: The date/time that the bundle was assembled – i.e. + when the resources were placed in the bundle. + total: + type: integer + description: "If a set of search matches, this is the total number of\ + \ entries of type 'match' across all pages in the search. It does not\ + \ include search.mode = 'include' or 'outcome' entries and it does not\ + \ provide a count of the number of entries in the Bundle." + format: int32 + link: + type: array + items: + $ref: '#/components/schemas/Bundle_Link' + entry: + type: array + items: + $ref: '#/components/schemas/Bundle_Entry' + signature: + $ref: '#/components/schemas/Signature' + OperationOutcome: + required: + - issue + example: + resourceType: OperationOutcome + meta: + versionId: aj7xYfDKGG + lastUpdated: 2020-03-12T00:11:56.482-04:00 + source: ZqswRdBz2V + profile: + - 7MtlUHdgF3 + security: + - system: eBZLDvfQS6 + version: 3loXo6Bekk + code: fApLgubn5v + display: hGDoUOaTiY + userSelected: true + tag: + - system: d6ZKFrRy9C + version: co9wqQZDjO + code: Z2JT_ZxmeR + display: f5JMtds3fb + userSelected: true + - code: ibm/complete-mock + implicitRules: FwNANOTUkD + language: iDvESiu0cB + text: + status: extensions + div:
+ issue: + - severity: warning + code: invariant + details: + coding: + - system: 9TiBhtaNhv + version: 38XIrYkjYf + code: s4dzxZ4dsW + display: tu3Q0RYWRq + userSelected: true + text: qW3nzpKNue + diagnostics: 4zXKgm6Eae + location: + - EmMlBkbb8W + expression: + - bSBqh22fAT + allOf: + - $ref: '#/components/schemas/DomainResource' + - type: object + properties: + issue: + type: array + items: + $ref: '#/components/schemas/OperationOutcome_Issue' + Bundle_Entry: + allOf: + - $ref: '#/components/schemas/BackboneElement' + - type: object + properties: + link: + type: array + items: + $ref: '#/components/schemas/Bundle_Link' + fullUrl: + pattern: \S* + type: string + description: "The Absolute URL for the resource. The fullUrl SHALL NOT\ + \ disagree with the id in the resource – i.e. if the fullUrl is\ + \ not a urn:uuid, the URL shall be version–independent URL consistent\ + \ with the Resource.id. The fullUrl is a version independent reference\ + \ to the resource. The fullUrl element SHALL have a value except that:\ + \ \n* fullUrl can be empty on a POST (although it does not need to when\ + \ specifying a temporary id for reference in the bundle)\n* Results\ + \ from operations might involve resources that are not identified." + resource: + $ref: '#/components/schemas/Resource' + search: + $ref: '#/components/schemas/Bundle_Entry_Search' + request: + $ref: '#/components/schemas/Bundle_Entry_Request' + response: + $ref: '#/components/schemas/Bundle_Entry_Response' + Bundle_Entry_Response: + required: + - status + allOf: + - $ref: '#/components/schemas/BackboneElement' + - type: object + properties: + status: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: The status code returned by processing this entry. The status + SHALL start with a 3 digit HTTP code (e.g. 404) and may contain the + standard HTTP description associated with the status code. + location: + pattern: \S* + type: string + description: "The location header created by processing this operation,\ + \ populated if the operation returns a location." + etag: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "The Etag for the resource, if the operation for the entry\ + \ produced a versioned resource (see [Resource Metadata and Versioning](http.html#versioning)\ + \ and [Managing Resource Contention](http.html#concurrency))." + lastModified: + pattern: "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\\ + .[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))" + type: string + description: The date/time that the resource was modified on the server. + outcome: + $ref: '#/components/schemas/Resource' + Bundle_Entry_Request: + required: + - method + - url + allOf: + - $ref: '#/components/schemas/BackboneElement' + - type: object + properties: + method: + type: string + description: "In a transaction or batch, this is the HTTP action to be\ + \ executed for this entry. In a history bundle, this indicates the HTTP\ + \ action that occurred." + enum: + - GET + - HEAD + - POST + - PUT + - DELETE + - PATCH + url: + pattern: \S* + type: string + description: "The URL for this entry, relative to the root (the address\ + \ to which the request is posted)." + ifNoneMatch: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "If the ETag values match, return a 304 Not Modified status.\ + \ See the API documentation for [\"Conditional Read\"](http.html#cread)." + ifModifiedSince: + pattern: "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\\ + .[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))" + type: string + description: "Only perform the operation if the last updated date matches.\ + \ See the API documentation for [\"Conditional Read\"](http.html#cread)." + ifMatch: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "Only perform the operation if the Etag value matches. For\ + \ more information, see the API section [\"Managing Resource Contention\"\ + ](http.html#concurrency)." + ifNoneExist: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "Instruct the server not to perform the create if a specified\ + \ resource already exists. For further information, see the API documentation\ + \ for [\"Conditional Create\"](http.html#ccreate). This is just the\ + \ query portion of the URL – what follows the \"?\" (not including\ + \ the \"?\")." + Bundle_Entry_Search: + allOf: + - $ref: '#/components/schemas/BackboneElement' + - type: object + properties: + mode: + type: string + description: "Why this entry is in the result set – whether it's\ + \ included as a match or because of an _include requirement, or to convey\ + \ information or warning information about the search process." + enum: + - match + - include + - outcome + score: + type: number + description: "When searching, the server's search ranking score for the\ + \ entry." + Bundle_Link: + required: + - relation + - url + allOf: + - $ref: '#/components/schemas/BackboneElement' + - type: object + properties: + relation: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "A name which details the functional use for this link –\ + \ see [http://www.iana.org/assignments/link–relations/link–relations.xhtml#link–relations–1](http://www.iana.org/assignments/link–relations/link–relations.xhtml#link–relations–1)." + url: + pattern: \S* + type: string + description: The reference details for the link. + OperationOutcome_Issue: + required: + - code + - severity + allOf: + - $ref: '#/components/schemas/BackboneElement' + - type: object + properties: + severity: + type: string + description: Indicates whether the issue indicates a variation from successful + processing. + enum: + - fatal + - error + - warning + - information + code: + type: string + description: "Describes the type of the issue. The system that creates\ + \ an OperationOutcome SHALL choose the most applicable code from the\ + \ IssueType value set, and may additional provide its own code for the\ + \ error in the details element." + enum: + - invalid + - structure + - required + - value + - invariant + - security + - login + - unknown + - expired + - forbidden + - suppressed + - processing + - not-supported + - duplicate + - multiple-matches + - not-found + - deleted + - too-long + - code-invalid + - extension + - too-costly + - business-rule + - conflict + - transient + - lock-error + - no-store + - exception + - timeout + - incomplete + - throttled + - informational + details: + $ref: '#/components/schemas/CodeableConcept' + diagnostics: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: Additional diagnostic information about the issue. + location: + type: array + items: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "This element is deprecated because it is XML specific.\ + \ It is replaced by issue.expression, which is format independent,\ + \ and simpler to parse. \n\nFor resource issues, this will be a simple\ + \ XPath limited to element names, repetition indicators and the default\ + \ child accessor that identifies one of the elements in the resource\ + \ that caused this issue to be raised. For HTTP errors, will be \"\ + http.\" + the parameter name." + expression: + type: array + items: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "A [simple subset of FHIRPath](fhirpath.html#simple) limited\ + \ to element names, repetition indicators and the default child accessor\ + \ that identifies one of the elements in the resource that caused\ + \ this issue to be raised." + Element: + type: object + properties: + id: + pattern: "[A-Za-z0-9\\-\\.]{1,64}" + type: string + description: Unique id for the element within a resource (for internal references). + This may be any string value that does not contain spaces. + extension: + type: array + items: + $ref: '#/components/schemas/Extension' + BackboneElement: + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + modifierExtension: + type: array + items: + $ref: '#/components/schemas/Extension' + Address: + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + use: + type: string + description: The purpose of this address. + enum: + - home + - work + - temp + - old + - billing + type: + type: string + description: Distinguishes between physical addresses (those you can visit) + and mailing addresses (e.g. PO Boxes and care–of addresses). Most + addresses are both. + enum: + - postal + - physical + - both + text: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: Specifies the entire address as it should be displayed e.g. + on a postal label. This may be provided instead of or as well as the + specific parts. + line: + type: array + items: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "This component contains the house number, apartment number,\ + \ street name, street direction, P.O. Box number, delivery hints,\ + \ and similar address information." + city: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "The name of the city, town, suburb, village or other community\ + \ or delivery center." + district: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: The name of the administrative area (county). + state: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: Sub–unit of a country with limited sovereignty in a + federally organized country. A code may be used if codes are in common + use (e.g. US 2 letter state codes). + postalCode: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: A postal code designating a region defined by the postal + service. + country: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: Country – a nation as commonly understood or generally + accepted. + period: + $ref: '#/components/schemas/Period' + Age: + allOf: + - $ref: '#/components/schemas/Quantity' + - type: object + properties: {} + Annotation: + required: + - text + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + authorReference: + $ref: '#/components/schemas/Reference' + authorString: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: The individual responsible for making the annotation. + time: + pattern: "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1])(T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\\ + .[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00)))?)?)?" + type: string + description: Indicates when this particular annotation was made. + text: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: The text of the annotation in markdown format. + Attachment: + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + contentType: + pattern: "[^\\s]+(\\s[^\\s]+)*" + type: string + description: Identifies the type of the data in the attachment and allows + a method to be chosen to interpret or render the data. Includes mime + type parameters such as charset where appropriate. + language: + pattern: "[^\\s]+(\\s[^\\s]+)*" + type: string + description: The human language of the content. The value can be any valid + value according to BCP 47. + data: + pattern: "(\\s*([0-9a-zA-Z\\+\\=]){4}\\s*)+" + type: string + description: "The actual data of the attachment – a sequence of\ + \ bytes, base64 encoded." + url: + pattern: \S* + type: string + description: A location where the data can be accessed. + size: + type: integer + description: "The number of bytes of data that make up this attachment\ + \ (before base64 encoding, if that is done)." + format: int32 + hash: + pattern: "(\\s*([0-9a-zA-Z\\+\\=]){4}\\s*)+" + type: string + description: The calculated hash of the data using SHA–1. Represented + using base64. + title: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: A label or set of text to display in place of the data. + creation: + pattern: "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1])(T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\\ + .[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00)))?)?)?" + type: string + description: The date that the attachment was first created. + CodeableConcept: + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + coding: + type: array + items: + $ref: '#/components/schemas/Coding' + text: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: A human language representation of the concept as seen/selected/uttered + by the user who entered the data and/or which represents the intended + meaning of the user. + Coding: + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + system: + pattern: \S* + type: string + description: The identification of the code system that defines the meaning + of the symbol in the code. + version: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "The version of the code system which was used when choosing\ + \ this code. Note that a well–maintained code system does not\ + \ need the version reported, because the meaning of codes is consistent\ + \ across versions. However this cannot consistently be assured, and\ + \ when the meaning is not guaranteed to be consistent, the version SHOULD\ + \ be exchanged." + code: + pattern: "[^\\s]+(\\s[^\\s]+)*" + type: string + description: A symbol in syntax defined by the system. The symbol may + be a predefined code or an expression in a syntax defined by the coding + system (e.g. post–coordination). + display: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "A representation of the meaning of the code in the system,\ + \ following the rules of the system." + userSelected: + type: boolean + description: Indicates that this coding was chosen by a user directly + – e.g. off a pick list of available items (codes or displays). + ContactPoint: + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + system: + type: string + description: Telecommunications form for contact point – what communications + system is required to make use of the contact. + enum: + - phone + - fax + - email + - pager + - url + - sms + - other + value: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "The actual contact point details, in a form that is meaningful\ + \ to the designated communication system (i.e. phone number or email\ + \ address)." + use: + type: string + description: Identifies the purpose for the contact point. + enum: + - home + - work + - temp + - old + - mobile + rank: + type: integer + description: Specifies a preferred order in which to use a set of contacts. + ContactPoints with lower rank values are more preferred than those with + higher rank values. + format: int32 + period: + $ref: '#/components/schemas/Period' + Count: + allOf: + - $ref: '#/components/schemas/Quantity' + - type: object + properties: {} + Distance: + allOf: + - $ref: '#/components/schemas/Quantity' + - type: object + properties: {} + Duration: + allOf: + - $ref: '#/components/schemas/Quantity' + - type: object + properties: {} + HumanName: + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + use: + type: string + description: Identifies the purpose for this name. + enum: + - usual + - official + - temp + - nickname + - anonymous + - old + - maiden + text: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: Specifies the entire name as it should be displayed e.g. + on an application UI. This may be provided instead of or as well as + the specific parts. + family: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: The part of a name that links to the genealogy. In some cultures + (e.g. Eritrea) the family name of a son is the first name of his father. + given: + type: array + items: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: Given name. + prefix: + type: array + items: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "Part of the name that is acquired as a title due to academic,\ + \ legal, employment or nobility status, etc. and that appears at the\ + \ start of the name." + suffix: + type: array + items: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "Part of the name that is acquired as a title due to academic,\ + \ legal, employment or nobility status, etc. and that appears at the\ + \ end of the name." + period: + $ref: '#/components/schemas/Period' + Identifier: + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + use: + type: string + description: The purpose of this identifier. + enum: + - usual + - official + - temp + - secondary + - old + type: + $ref: '#/components/schemas/CodeableConcept' + system: + pattern: \S* + type: string + description: "Establishes the namespace for the value – that is,\ + \ a URL that describes a set values that are unique." + value: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: The portion of the identifier typically relevant to the user + and which is unique within the context of the system. + period: + $ref: '#/components/schemas/Period' + assigner: + $ref: '#/components/schemas/Reference' + Money: + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + value: + type: number + description: Numerical value (with implicit precision). + currency: + pattern: "[^\\s]+(\\s[^\\s]+)*" + type: string + description: ISO 4217 Currency Code. + MoneyQuantity: + allOf: + - $ref: '#/components/schemas/Quantity' + - type: object + properties: {} + Period: + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + start: + pattern: "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1])(T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\\ + .[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00)))?)?)?" + type: string + description: The start of the period. The boundary is inclusive. + end: + pattern: "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1])(T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\\ + .[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00)))?)?)?" + type: string + description: "The end of the period. If the end of the period is missing,\ + \ it means no end was known or planned at the time the instance was\ + \ created. The start may be in the past, and the end date in the future,\ + \ which means that period is expected/planned to end at that time." + Quantity: + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + value: + type: number + description: The value of the measured amount. The value includes an implicit + precision in the presentation of the value. + comparator: + type: string + description: "How the value should be understood and represented –\ + \ whether the actual value is greater or less than the stated value\ + \ due to measurement issues; e.g. if the comparator is \"<\" , then\ + \ the real value is < stated value." + enum: + - < + - <= + - '>=' + - '>' + unit: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: A human–readable form of the unit. + system: + pattern: \S* + type: string + description: The identification of the system that provides the coded + form of the unit. + code: + pattern: "[^\\s]+(\\s[^\\s]+)*" + type: string + description: A computer processable form of the unit in some unit representation + system. + Range: + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + low: + $ref: '#/components/schemas/SimpleQuantity' + high: + $ref: '#/components/schemas/SimpleQuantity' + Ratio: + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + numerator: + $ref: '#/components/schemas/Quantity' + denominator: + $ref: '#/components/schemas/Quantity' + Reference: + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + reference: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "A reference to a location at which the other resource is\ + \ found. The reference may be a relative reference, in which case it\ + \ is relative to the service base URL, or an absolute URL that resolves\ + \ to the location where the resource is found. The reference may be\ + \ version specific or not. If the reference is not to a FHIR RESTful\ + \ server, then it should be assumed to be version specific. Internal\ + \ fragment references (start with '#') refer to contained resources." + type: + pattern: \S* + type: string + description: "The expected type of the target of the reference. If both\ + \ Reference.type and Reference.reference are populated and Reference.reference\ + \ is a FHIR URL, both SHALL be consistent.\n\nThe type is the Canonical\ + \ URL of Resource Definition that is the type this reference refers\ + \ to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/\ + \ e.g. \"Patient\" is a reference to http://hl7.org/fhir/StructureDefinition/Patient.\ + \ Absolute URLs are only allowed for logical models (and can only be\ + \ used in references in logical models, not resources)." + identifier: + $ref: '#/components/schemas/Identifier' + display: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: Plain text narrative that identifies the resource in addition + to the resource reference. + SampledData: + required: + - dimensions + - origin + - period + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + origin: + $ref: '#/components/schemas/SimpleQuantity' + period: + type: number + description: "The length of time between sampling times, measured in milliseconds." + factor: + type: number + description: A correction factor that is applied to the sampled data points + before they are added to the origin. + lowerLimit: + type: number + description: The lower limit of detection of the measured points. This + is needed if any of the data points have the value "L" (lower than detection + limit). + upperLimit: + type: number + description: The upper limit of detection of the measured points. This + is needed if any of the data points have the value "U" (higher than + detection limit). + dimensions: + type: integer + description: "The number of sample points at each time point. If this\ + \ value is greater than one, then the dimensions will be interlaced\ + \ – all the sample points for a point in time will be recorded\ + \ at once." + format: int32 + data: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "A series of data points which are decimal values separated\ + \ by a single space (character u20). The special values \"E\" (error),\ + \ \"L\" (below detection limit) and \"U\" (above detection limit) can\ + \ also be used in place of a decimal value." + SimpleQuantity: + allOf: + - $ref: '#/components/schemas/Quantity' + - type: object + properties: {} + Signature: + required: + - type + - when + - who + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + type: + type: array + items: + $ref: '#/components/schemas/Coding' + when: + pattern: "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\\ + .[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))" + type: string + description: When the digital signature was signed. + who: + $ref: '#/components/schemas/Reference' + onBehalfOf: + $ref: '#/components/schemas/Reference' + targetFormat: + pattern: "[^\\s]+(\\s[^\\s]+)*" + type: string + description: A mime type that indicates the technical format of the target + resources signed by the signature. + sigFormat: + pattern: "[^\\s]+(\\s[^\\s]+)*" + type: string + description: "A mime type that indicates the technical format of the signature.\ + \ Important mime types are application/signature+xml for X ML DigSig,\ + \ application/jose for JWS, and image/* for a graphical image of a signature,\ + \ etc." + data: + pattern: "(\\s*([0-9a-zA-Z\\+\\=]){4}\\s*)+" + type: string + description: The base64 encoding of the Signature content. When signature + is not recorded electronically this element would be empty. + Timing: + allOf: + - $ref: '#/components/schemas/BackboneElement' + - type: object + properties: + event: + type: array + items: + pattern: "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1])(T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\\ + .[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00)))?)?)?" + type: string + description: Identifies specific times when the event occurs. + repeat: + $ref: '#/components/schemas/Timing_Repeat' + code: + $ref: '#/components/schemas/CodeableConcept' + Timing_Repeat: + allOf: + - $ref: '#/components/schemas/BackboneElement' + - type: object + properties: + boundsDuration: + $ref: '#/components/schemas/Duration' + boundsRange: + $ref: '#/components/schemas/Range' + boundsPeriod: + $ref: '#/components/schemas/Period' + count: + type: integer + description: "A total count of the desired number of repetitions across\ + \ the duration of the entire timing specification. If countMax is present,\ + \ this element indicates the lower bound of the allowed range of count\ + \ values." + format: int32 + countMax: + type: integer + description: "If present, indicates that the count is a range –\ + \ so to perform the action between [count] and [countMax] times." + format: int32 + duration: + type: number + description: "How long this thing happens for when it happens. If durationMax\ + \ is present, this element indicates the lower bound of the allowed\ + \ range of the duration." + durationMax: + type: number + description: "If present, indicates that the duration is a range –\ + \ so to perform the action between [duration] and [durationMax] time\ + \ length." + durationUnit: + type: string + description: "The units of time for the duration, in UCUM units." + enum: + - s + - min + - h + - d + - wk + - mo + - a + frequency: + type: integer + description: "The number of times to repeat the action within the specified\ + \ period. If frequencyMax is present, this element indicates the lower\ + \ bound of the allowed range of the frequency." + format: int32 + frequencyMax: + type: integer + description: "If present, indicates that the frequency is a range –\ + \ so to repeat between [frequency] and [frequencyMax] times within the\ + \ period or period range." + format: int32 + period: + type: number + description: "Indicates the duration of time over which repetitions are\ + \ to occur; e.g. to express \"3 times per day\", 3 would be the frequency\ + \ and \"1 day\" would be the period. If periodMax is present, this element\ + \ indicates the lower bound of the allowed range of the period length." + periodMax: + type: number + description: "If present, indicates that the period is a range from [period]\ + \ to [periodMax], allowing expressing concepts such as \"do this once\ + \ every 3–5 days." + periodUnit: + type: string + description: The units of time for the period in UCUM units. + enum: + - s + - min + - h + - d + - wk + - mo + - a + dayOfWeek: + type: array + items: + type: string + description: "If one or more days of week is provided, then the action\ + \ happens only on the specified day(s)." + enum: + - mon + - tue + - wed + - thu + - fri + - sat + - sun + timeOfDay: + type: array + items: + pattern: "([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\.[0-9]+)?" + type: string + description: Specified time of day for action to take place. + when: + type: array + items: + type: string + description: "An approximate time period during the day, potentially\ + \ linked to an event of daily living that indicates when the action\ + \ should occur." + enum: + - MORN + - MORN.early + - MORN.late + - NOON + - AFT + - AFT.early + - AFT.late + - EVE + - EVE.early + - EVE.late + - NIGHT + - PHS + - HS + - WAKE + - C + - CM + - CD + - CV + - AC + - ACM + - ACD + - ACV + - PC + - PCM + - PCD + - PCV + offset: + type: integer + description: "The number of minutes from the event. If the event code\ + \ does not indicate whether the minutes is before or after the event,\ + \ then the offset is assumed to be after the event." + format: int32 + ContactDetail: + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + name: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: The name of an individual to contact. + telecom: + type: array + items: + $ref: '#/components/schemas/ContactPoint' + RelatedArtifact: + required: + - type + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + type: + type: string + description: The type of relationship to the related artifact. + enum: + - documentation + - justification + - citation + - predecessor + - successor + - derived-from + - depends-on + - composed-of + label: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "A short label that can be used to reference the citation\ + \ from elsewhere in the containing artifact, such as a footnote index." + display: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "A brief description of the document or knowledge resource\ + \ being referenced, suitable for display to a consumer." + citation: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: A bibliographic citation for the related artifact. This text + SHOULD be formatted according to an accepted citation format. + url: + pattern: \S* + type: string + description: A url for the artifact that can be followed to access the + actual content. + document: + $ref: '#/components/schemas/Attachment' + resource: + pattern: \S* + type: string + description: "The related resource, such as a library, value set, profile,\ + \ or other knowledge resource." + UsageContext: + required: + - code + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + code: + $ref: '#/components/schemas/Coding' + valueCodeableConcept: + $ref: '#/components/schemas/CodeableConcept' + valueQuantity: + $ref: '#/components/schemas/Quantity' + valueRange: + $ref: '#/components/schemas/Range' + valueReference: + $ref: '#/components/schemas/Reference' + Meta: + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + versionId: + pattern: "[A-Za-z0-9\\-\\.]{1,64}" + type: string + description: "The version specific identifier, as it appears in the version\ + \ portion of the URL. This value changes when the resource is created,\ + \ updated, or deleted." + lastUpdated: + pattern: "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\\ + .[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))" + type: string + description: When the resource last changed – e.g. when the version + changed. + source: + pattern: \S* + type: string + description: "A uri that identifies the source system of the resource.\ + \ This provides a minimal amount of [Provenance](provenance.html#) information\ + \ that can be used to track or differentiate the source of information\ + \ in the resource. The source may identify another FHIR server, document,\ + \ message, database, etc." + profile: + type: array + items: + pattern: \S* + type: string + description: "A list of profiles (references to [StructureDefinition](structuredefinition.html#)\ + \ resources) that this resource claims to conform to. The URL is a\ + \ reference to [StructureDefinition.url](structuredefinition–definitions.html#StructureDefinition.url)." + security: + type: array + items: + $ref: '#/components/schemas/Coding' + tag: + type: array + items: + $ref: '#/components/schemas/Coding' + Narrative: + required: + - div + - status + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + status: + type: string + description: "The status of the narrative – whether it's entirely\ + \ generated (from just the defined data or the extensions too), or whether\ + \ a human authored it and it may contain additional data." + enum: + - generated + - extensions + - additional + - empty + div: + type: string + description: "The actual narrative content, a stripped down version of\ + \ XHTML." + Extension: + required: + - url + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + url: + pattern: \S* + type: string + description: Source of the definition for the extension code – a + logical name or a URL. + valueBase64Binary: + pattern: "(\\s*([0-9a-zA-Z\\+\\=]){4}\\s*)+" + type: string + description: "Value of extension – must be one of a constrained\ + \ set of the data types (see [Extensibility](extensibility.html) for\ + \ a list)." + valueBoolean: + type: boolean + description: "Value of extension – must be one of a constrained\ + \ set of the data types (see [Extensibility](extensibility.html) for\ + \ a list)." + valueCanonical: + pattern: \S* + type: string + description: "Value of extension – must be one of a constrained\ + \ set of the data types (see [Extensibility](extensibility.html) for\ + \ a list)." + valueCode: + pattern: "[^\\s]+(\\s[^\\s]+)*" + type: string + description: "Value of extension – must be one of a constrained\ + \ set of the data types (see [Extensibility](extensibility.html) for\ + \ a list)." + valueDate: + pattern: "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1]))?)?" + type: string + description: "Value of extension – must be one of a constrained\ + \ set of the data types (see [Extensibility](extensibility.html) for\ + \ a list)." + valueDateTime: + pattern: "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1])(T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\\ + .[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00)))?)?)?" + type: string + description: "Value of extension – must be one of a constrained\ + \ set of the data types (see [Extensibility](extensibility.html) for\ + \ a list)." + valueDecimal: + type: number + description: "Value of extension – must be one of a constrained\ + \ set of the data types (see [Extensibility](extensibility.html) for\ + \ a list)." + valueId: + pattern: "[A-Za-z0-9\\-\\.]{1,64}" + type: string + description: "Value of extension – must be one of a constrained\ + \ set of the data types (see [Extensibility](extensibility.html) for\ + \ a list)." + valueInstant: + pattern: "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\\ + .[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))" + type: string + description: "Value of extension – must be one of a constrained\ + \ set of the data types (see [Extensibility](extensibility.html) for\ + \ a list)." + valueInteger: + type: integer + description: "Value of extension – must be one of a constrained\ + \ set of the data types (see [Extensibility](extensibility.html) for\ + \ a list)." + format: int32 + valueMarkdown: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "Value of extension – must be one of a constrained\ + \ set of the data types (see [Extensibility](extensibility.html) for\ + \ a list)." + valueOid: + pattern: "urn:oid:[0-2](\\.(0|[1-9][0-9]*))+" + type: string + description: "Value of extension – must be one of a constrained\ + \ set of the data types (see [Extensibility](extensibility.html) for\ + \ a list)." + valuePositiveInt: + type: integer + description: "Value of extension – must be one of a constrained\ + \ set of the data types (see [Extensibility](extensibility.html) for\ + \ a list)." + format: int32 + valueString: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "Value of extension – must be one of a constrained\ + \ set of the data types (see [Extensibility](extensibility.html) for\ + \ a list)." + valueTime: + pattern: "([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\.[0-9]+)?" + type: string + description: "Value of extension – must be one of a constrained\ + \ set of the data types (see [Extensibility](extensibility.html) for\ + \ a list)." + valueUnsignedInt: + type: integer + description: "Value of extension – must be one of a constrained\ + \ set of the data types (see [Extensibility](extensibility.html) for\ + \ a list)." + format: int32 + valueUri: + pattern: \S* + type: string + description: "Value of extension – must be one of a constrained\ + \ set of the data types (see [Extensibility](extensibility.html) for\ + \ a list)." + valueUrl: + pattern: \S* + type: string + description: "Value of extension – must be one of a constrained\ + \ set of the data types (see [Extensibility](extensibility.html) for\ + \ a list)." + valueUuid: + pattern: "urn:uuid:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}" + type: string + description: "Value of extension – must be one of a constrained\ + \ set of the data types (see [Extensibility](extensibility.html) for\ + \ a list)." + valueAddress: + $ref: '#/components/schemas/Address' + valueAge: + $ref: '#/components/schemas/Age' + valueAnnotation: + $ref: '#/components/schemas/Annotation' + valueAttachment: + $ref: '#/components/schemas/Attachment' + valueCodeableConcept: + $ref: '#/components/schemas/CodeableConcept' + valueCoding: + $ref: '#/components/schemas/Coding' + valueContactPoint: + $ref: '#/components/schemas/ContactPoint' + valueCount: + $ref: '#/components/schemas/Count' + valueDistance: + $ref: '#/components/schemas/Distance' + valueDuration: + $ref: '#/components/schemas/Duration' + valueHumanName: + $ref: '#/components/schemas/HumanName' + valueIdentifier: + $ref: '#/components/schemas/Identifier' + valueMoney: + $ref: '#/components/schemas/Money' + valuePeriod: + $ref: '#/components/schemas/Period' + valueQuantity: + $ref: '#/components/schemas/Quantity' + valueRange: + $ref: '#/components/schemas/Range' + valueRatio: + $ref: '#/components/schemas/Ratio' + valueReference: + $ref: '#/components/schemas/Reference' + valueSampledData: + $ref: '#/components/schemas/SampledData' + valueSignature: + $ref: '#/components/schemas/Signature' + valueTiming: + $ref: '#/components/schemas/Timing' + valueContactDetail: + $ref: '#/components/schemas/ContactDetail' + valueRelatedArtifact: + $ref: '#/components/schemas/RelatedArtifact' + valueUsageContext: + $ref: '#/components/schemas/UsageContext' + valueMeta: + $ref: '#/components/schemas/Meta' + Practitioner: + required: + - code + allOf: + - $ref: '#/components/schemas/DomainResource' + - type: object + properties: + identifier: + $ref: '#/components/schemas/Identifier' + extension: + $ref: '#/components/schemas/Extension' + period: + $ref: '#/components/schemas/Period' + address: + $ref: '#/components/schemas/Address' + code: + $ref: '#/components/schemas/CodeableConcept' + gender: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: Administrative Gender - the gender that the person is considered + to have for administration and record keeping purposes. + modifierExtension: + $ref: '#/components/schemas/Extension' + active: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: Whether this practitioner's record is in active use. + photo: + $ref: '#/components/schemas/Attachment' + language: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: The base language in which the resource is written. + birthDate: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: The date of birth for the practitioner. + issuer: + $ref: '#/components/schemas/Reference' + qualification: + $ref: '#/components/schemas/BackboneElement' + contained: + $ref: '#/components/schemas/Resource' + meta: + $ref: '#/components/schemas/Meta' + name: + $ref: '#/components/schemas/HumanName' + implicitRules: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "A reference to a set of rules that were followed when the\ + \ resource was constructed, and which must be understood when processing\ + \ the content. Often, this is a reference to an implementation guide\ + \ that defines the special rules along with other profiles etc." + telecom: + $ref: '#/components/schemas/ContactPoint' + id: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: Unique id for the element within a resource (for internal + references). This may be any string value that does not contain spaces. + text: + $ref: '#/components/schemas/Narrative' + communication: + $ref: '#/components/schemas/CodeableConcept' + parameters: + _lastUpdatedParam: + name: _lastUpdated + in: query + description: When the resource version last changed + required: false + style: form + explode: true + schema: + type: string + _securityParam: + name: _security + in: query + description: Security Labels applied to this resource + required: false + style: form + explode: true + schema: + type: string + _tagParam: + name: _tag + in: query + description: Tags applied to this resource + required: false + style: form + explode: true + schema: + type: string + _idParam: + name: _id + in: query + description: Logical id of this artifact + required: false + style: form + explode: true + schema: + type: string + _sourceParam: + name: _source + in: query + description: Identifies where the resource comes from + required: false + style: form + explode: true + schema: + type: string + _profileParam: + name: _profile + in: query + description: Profiles this resource claims to conform to + required: false + style: form + explode: true + schema: + type: string + securitySchemes: + default: + type: oauth2 + flows: + implicit: + authorizationUrl: https://localhost:8243/authorize + scopes: {} +x-wso2-oh-fhir-resourceType: Practitioner +x-wso2-oh-fhir-profile: +- http://hl7.org/fhir/StructureDefinition/Practitioner diff --git a/schedule-appointment-process-API/aggregate-service/oas/SlotAPI.yaml b/schedule-appointment-process-API/aggregate-service/oas/SlotAPI.yaml new file mode 100644 index 000000000..05184cd47 --- /dev/null +++ b/schedule-appointment-process-API/aggregate-service/oas/SlotAPI.yaml @@ -0,0 +1,1961 @@ +openapi: 3.0.1 +info: + title: SlotAPI + description: "A simplified version of the HL7 FHIR API for Slot resource.\nSupported\ + \ Profiles: \nhttp://hl7.org/fhir/StructureDefinition/Slot\n" + contact: + name: API Support + url: https://wso2.com/contact/ + email: info@wso2.com + license: + name: Apache 2.0 + url: https://www.apache.org/licenses/LICENSE-2.0.html + version: 1.0.0 +tags: +- name: international +- name: Slot +- name: 4.0.1 +paths: + /fhir/r4/Slot: + get: + tags: + - GET + - Slot + summary: search Slot + description: This operation is used to search a Slot + parameters: + - name: specialty + in: query + description: The specialty of a practitioner that would be required to perform + the service requested in this appointment + required: false + schema: + type: string + x-wso2-oh-fhirType: token + - name: service-category + in: query + description: A broad categorization of the service that is to be performed + during this appointment + required: false + schema: + type: string + x-wso2-oh-fhirType: token + - name: status + in: query + description: The free/busy status of the appointment + required: false + schema: + type: string + x-wso2-oh-fhirType: token + - name: appointment-type + in: query + description: The style of appointment or patient that may be booked in the + slot (not service type) + required: false + schema: + type: string + x-wso2-oh-fhirType: token + - name: schedule + in: query + description: The Schedule Resource that we are seeking a slot within + required: false + schema: + type: string + x-wso2-oh-fhirType: reference + - name: start + in: query + description: Appointment date/time. + required: false + schema: + type: string + x-wso2-oh-fhirType: token + - name: service-type + in: query + description: The type of appointments that can be booked into the slot + required: false + schema: + type: string + x-wso2-oh-fhirType: token + - name: identifier + in: query + description: A Slot Identifier + required: false + schema: + type: string + x-wso2-oh-fhirType: token + - name: practitioner + in: query + description: A Slot Identifier + required: false + schema: + type: string + x-wso2-oh-fhirType: token + - $ref: '#/components/parameters/_lastUpdatedParam' + - $ref: '#/components/parameters/_securityParam' + - $ref: '#/components/parameters/_tagParam' + - $ref: '#/components/parameters/_idParam' + - $ref: '#/components/parameters/_sourceParam' + - $ref: '#/components/parameters/_profileParam' + responses: + "200": + description: search Slot operation successful + content: + application/fhir+json: + schema: + $ref: '#/components/schemas/Bundle' + security: + - default: [] + post: + tags: + - POST + - Slot + summary: create Slot + description: This operation is used to create a Slot + responses: + "201": + description: create Slot operation successful + security: + - default: [] + /fhir/r4/Slot/{id}: + get: + tags: + - GET + - Slot + summary: read Slot + description: This operation is used to read a Slot + parameters: + - name: id + in: path + description: logical identifier + required: true + schema: + type: string + responses: + "200": + description: read Slot operation successful + content: + application/fhir+json: + schema: + $ref: '#/components/schemas/Slot' + security: + - default: [] + put: + tags: + - PUT + - Slot + summary: update Slot + description: This operation is used to update a Slot + parameters: + - name: id + in: path + description: logical identifier + required: true + schema: + type: string + responses: + "201": + description: update Slot operation successful + security: + - default: [] + delete: + tags: + - DELETE + - Slot + summary: delete Slot + description: This operation is used to delete a Slot + parameters: + - name: id + in: path + description: logical identifier + required: true + schema: + type: string + responses: + "204": + description: delete Slot operation successful + security: + - default: [] +components: + schemas: + Resource: + required: + - resourceType + type: object + properties: + resourceType: + type: string + enum: + - Account + - ActivityDefinition + - AdverseEvent + - AllergyIntolerance + - Appointment + - AppointmentResponse + - AuditEvent + - Basic + - Binary + - BiologicallyDerivedProduct + - BodyStructure + - Bundle + - CapabilityStatement + - CarePlan + - CareTeam + - CatalogEntry + - ChargeItem + - ChargeItemDefinition + - Claim + - ClaimResponse + - ClinicalImpression + - CodeSystem + - Communication + - CommunicationRequest + - CompartmentDefinition + - Composition + - ConceptMap + - Condition + - Consent + - Contract + - Coverage + - CoverageEligibilityRequest + - CoverageEligibilityResponse + - DetectedIssue + - Device + - DeviceDefinition + - DeviceMetric + - DeviceRequest + - DeviceUseStatement + - DiagnosticReport + - DocumentManifest + - DocumentReference + - DomainResource + - EffectEvidenceSynthesis + - Encounter + - Endpoint + - EnrollmentRequest + - EnrollmentResponse + - EpisodeOfCare + - EventDefinition + - Evidence + - EvidenceVariable + - ExampleScenario + - ExplanationOfBenefit + - FamilyMemberHistory + - Flag + - Goal + - GraphDefinition + - Group + - GuidanceResponse + - HealthcareService + - ImagingStudy + - Immunization + - ImmunizationEvaluation + - ImmunizationRecommendation + - ImplementationGuide + - InsurancePlan + - Invoice + - Library + - Linkage + - List + - Location + - Measure + - MeasureReport + - Media + - Medication + - MedicationAdministration + - MedicationDispense + - MedicationKnowledge + - MedicationRequest + - MedicationStatement + - MedicinalProduct + - MedicinalProductAuthorization + - MedicinalProductContraindication + - MedicinalProductIndication + - MedicinalProductIngredient + - MedicinalProductInteraction + - MedicinalProductManufactured + - MedicinalProductPackaged + - MedicinalProductPharmaceutical + - MedicinalProductUndesirableEffect + - MessageDefinition + - MessageHeader + - MolecularSequence + - NamingSystem + - NutritionOrder + - Observation + - ObservationDefinition + - OperationDefinition + - OperationOutcome + - Organization + - OrganizationAffiliation + - Parameters + - Patient + - PaymentNotice + - PaymentReconciliation + - Person + - PlanDefinition + - Practitioner + - PractitionerRole + - Procedure + - Provenance + - Questionnaire + - QuestionnaireResponse + - RelatedPerson + - RequestGroup + - ResearchDefinition + - ResearchElementDefinition + - ResearchStudy + - ResearchSubject + - Resource + - RiskAssessment + - RiskEvidenceSynthesis + - Schedule + - SearchParameter + - ServiceRequest + - Slot + - Specimen + - SpecimenDefinition + - StructureDefinition + - StructureMap + - Subscription + - Substance + - SubstanceNucleicAcid + - SubstancePolymer + - SubstanceProtein + - SubstanceReferenceInformation + - SubstanceSourceMaterial + - SubstanceSpecification + - SupplyDelivery + - SupplyRequest + - Task + - TerminologyCapabilities + - TestReport + - TestScript + - ValueSet + - VerificationResult + - VisionPrescription + id: + pattern: "[A-Za-z0-9\\-\\.]{1,64}" + type: string + description: "The logical id of the resource, as used in the URL for the\ + \ resource. Once assigned, this value never changes." + meta: + $ref: '#/components/schemas/Meta' + implicitRules: + pattern: \S* + type: string + description: "A reference to a set of rules that were followed when the\ + \ resource was constructed, and which must be understood when processing\ + \ the content. Often, this is a reference to an implementation guide that\ + \ defines the special rules along with other profiles etc." + language: + pattern: "[^\\s]+(\\s[^\\s]+)*" + type: string + description: The base language in which the resource is written. + DomainResource: + allOf: + - $ref: '#/components/schemas/Resource' + - type: object + properties: + text: + $ref: '#/components/schemas/Narrative' + contained: + type: array + items: + $ref: '#/components/schemas/Resource' + extension: + type: array + items: + $ref: '#/components/schemas/Extension' + modifierExtension: + type: array + items: + $ref: '#/components/schemas/Extension' + Bundle: + required: + - type + example: + resourceType: Bundle + meta: + versionId: exaha1GMZU + lastUpdated: 2020-03-12T00:11:47.779-04:00 + source: OscBE5P0oL + profile: + - 2t1_PYz6sb + security: + - system: __ZQLAVVwf + version: VLbtqKcbsY + code: VUlDjytwgy + display: qiSsBMDgPt + userSelected: true + tag: + - system: zjCxD2PaBs + version: rzU1dChGRU + code: T_fA90_uZ3 + display: lX3NJdEblQ + userSelected: true + - code: ibm/complete-mock + implicitRules: vor6NZfU_z + language: L2CvMvoQCf + identifier: + use: temp + type: + coding: + - system: 2KSvg9_FAi + version: gGp8DOk9J1 + code: mfTsOuaMha + display: oWF_kySdMa + userSelected: true + text: JCfLMefieh + system: OD8o0wUurR + value: rB39S_eWKm + period: + start: 2020-03-12T00:11:47.781-04:00 + end: 2020-03-12T00:11:47.781-04:00 + type: message + timestamp: 2020-03-12T00:11:47.768-04:00 + total: 253899444 + link: + - relation: 7ntmg3QgsB + url: yqZC1h4OiP + entry: + - link: + - relation: BYqAgl7fxn + url: FjYy1I_fo0 + fullUrl: jRHNMRSGoH + search: + mode: outcome + score: 215939698769 + request: + method: HEAD + url: fsGmEqxt_V + ifNoneMatch: 9Ce9vVtTEJ + ifModifiedSince: 2020-03-12T00:11:47.776-04:00 + ifMatch: PtLujM597v + ifNoneExist: thVohqaRoO + response: + status: Vz647bKzDX + location: vG6ZG5JY3n + etag: UAy7mNeNeo + lastModified: 2020-03-12T00:11:47.773-04:00 + signature: + type: + - system: UXJhVBJtsw + version: dSN1eoXw7X + code: 7n8GNkS7ty + display: Ff82O7MvgK + userSelected: true + when: 2020-03-12T00:11:47.767-04:00 + who: + reference: Practitioner/8Jt_8Rtofu + type: Practitioner + identifier: + use: secondary + type: + coding: + - system: aOvIofeYmD + version: mNBmEi5RDA + code: sM5gtqK3Xw + display: aOf6nJImxy + userSelected: true + text: zaOFAoPxBA + system: C70kG_5CcM + value: TYMT3hKJFR + period: + start: 2020-03-12T00:11:47.765-04:00 + end: 2020-03-12T00:11:47.765-04:00 + display: 5vUkPEw2_I + onBehalfOf: + reference: Practitioner/PEch7CxGIg + type: Practitioner + identifier: + use: usual + type: + coding: + - system: ixnevWoHGy + version: hJQzXghlpb + code: h6NurXxnyH + display: C0fDviMSsU + userSelected: true + text: izhrMjXk74 + system: giGNRU5rWU + value: e7_ezY1vVp + period: + start: 2020-03-12T00:11:47.767-04:00 + end: 2020-03-12T00:11:47.767-04:00 + display: nWuUixICQd + targetFormat: F93ISQKaDY + sigFormat: Qx2S3AEiMQ + data: AGxIVG4= + allOf: + - $ref: '#/components/schemas/Resource' + - type: object + properties: + identifier: + $ref: '#/components/schemas/Identifier' + type: + type: string + description: Indicates the purpose of this bundle – how it is intended + to be used. + enum: + - document + - message + - transaction + - transaction-response + - batch + - batch-response + - history + - searchset + - collection + timestamp: + pattern: "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\\ + .[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))" + type: string + description: The date/time that the bundle was assembled – i.e. + when the resources were placed in the bundle. + total: + type: integer + description: "If a set of search matches, this is the total number of\ + \ entries of type 'match' across all pages in the search. It does not\ + \ include search.mode = 'include' or 'outcome' entries and it does not\ + \ provide a count of the number of entries in the Bundle." + format: int32 + link: + type: array + items: + $ref: '#/components/schemas/Bundle_Link' + entry: + type: array + items: + $ref: '#/components/schemas/Bundle_Entry' + signature: + $ref: '#/components/schemas/Signature' + OperationOutcome: + required: + - issue + example: + resourceType: OperationOutcome + meta: + versionId: aj7xYfDKGG + lastUpdated: 2020-03-12T00:11:56.482-04:00 + source: ZqswRdBz2V + profile: + - 7MtlUHdgF3 + security: + - system: eBZLDvfQS6 + version: 3loXo6Bekk + code: fApLgubn5v + display: hGDoUOaTiY + userSelected: true + tag: + - system: d6ZKFrRy9C + version: co9wqQZDjO + code: Z2JT_ZxmeR + display: f5JMtds3fb + userSelected: true + - code: ibm/complete-mock + implicitRules: FwNANOTUkD + language: iDvESiu0cB + text: + status: extensions + div:
+ issue: + - severity: warning + code: invariant + details: + coding: + - system: 9TiBhtaNhv + version: 38XIrYkjYf + code: s4dzxZ4dsW + display: tu3Q0RYWRq + userSelected: true + text: qW3nzpKNue + diagnostics: 4zXKgm6Eae + location: + - EmMlBkbb8W + expression: + - bSBqh22fAT + allOf: + - $ref: '#/components/schemas/DomainResource' + - type: object + properties: + issue: + type: array + items: + $ref: '#/components/schemas/OperationOutcome_Issue' + Bundle_Entry: + allOf: + - $ref: '#/components/schemas/BackboneElement' + - type: object + properties: + link: + type: array + items: + $ref: '#/components/schemas/Bundle_Link' + fullUrl: + pattern: \S* + type: string + description: "The Absolute URL for the resource. The fullUrl SHALL NOT\ + \ disagree with the id in the resource – i.e. if the fullUrl is\ + \ not a urn:uuid, the URL shall be version–independent URL consistent\ + \ with the Resource.id. The fullUrl is a version independent reference\ + \ to the resource. The fullUrl element SHALL have a value except that:\ + \ \n* fullUrl can be empty on a POST (although it does not need to when\ + \ specifying a temporary id for reference in the bundle)\n* Results\ + \ from operations might involve resources that are not identified." + resource: + $ref: '#/components/schemas/Resource' + search: + $ref: '#/components/schemas/Bundle_Entry_Search' + request: + $ref: '#/components/schemas/Bundle_Entry_Request' + response: + $ref: '#/components/schemas/Bundle_Entry_Response' + Bundle_Entry_Response: + required: + - status + allOf: + - $ref: '#/components/schemas/BackboneElement' + - type: object + properties: + status: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: The status code returned by processing this entry. The status + SHALL start with a 3 digit HTTP code (e.g. 404) and may contain the + standard HTTP description associated with the status code. + location: + pattern: \S* + type: string + description: "The location header created by processing this operation,\ + \ populated if the operation returns a location." + etag: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "The Etag for the resource, if the operation for the entry\ + \ produced a versioned resource (see [Resource Metadata and Versioning](http.html#versioning)\ + \ and [Managing Resource Contention](http.html#concurrency))." + lastModified: + pattern: "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\\ + .[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))" + type: string + description: The date/time that the resource was modified on the server. + outcome: + $ref: '#/components/schemas/Resource' + Bundle_Entry_Request: + required: + - method + - url + allOf: + - $ref: '#/components/schemas/BackboneElement' + - type: object + properties: + method: + type: string + description: "In a transaction or batch, this is the HTTP action to be\ + \ executed for this entry. In a history bundle, this indicates the HTTP\ + \ action that occurred." + enum: + - GET + - HEAD + - POST + - PUT + - DELETE + - PATCH + url: + pattern: \S* + type: string + description: "The URL for this entry, relative to the root (the address\ + \ to which the request is posted)." + ifNoneMatch: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "If the ETag values match, return a 304 Not Modified status.\ + \ See the API documentation for [\"Conditional Read\"](http.html#cread)." + ifModifiedSince: + pattern: "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\\ + .[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))" + type: string + description: "Only perform the operation if the last updated date matches.\ + \ See the API documentation for [\"Conditional Read\"](http.html#cread)." + ifMatch: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "Only perform the operation if the Etag value matches. For\ + \ more information, see the API section [\"Managing Resource Contention\"\ + ](http.html#concurrency)." + ifNoneExist: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "Instruct the server not to perform the create if a specified\ + \ resource already exists. For further information, see the API documentation\ + \ for [\"Conditional Create\"](http.html#ccreate). This is just the\ + \ query portion of the URL – what follows the \"?\" (not including\ + \ the \"?\")." + Bundle_Entry_Search: + allOf: + - $ref: '#/components/schemas/BackboneElement' + - type: object + properties: + mode: + type: string + description: "Why this entry is in the result set – whether it's\ + \ included as a match or because of an _include requirement, or to convey\ + \ information or warning information about the search process." + enum: + - match + - include + - outcome + score: + type: number + description: "When searching, the server's search ranking score for the\ + \ entry." + Bundle_Link: + required: + - relation + - url + allOf: + - $ref: '#/components/schemas/BackboneElement' + - type: object + properties: + relation: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "A name which details the functional use for this link –\ + \ see [http://www.iana.org/assignments/link–relations/link–relations.xhtml#link–relations–1](http://www.iana.org/assignments/link–relations/link–relations.xhtml#link–relations–1)." + url: + pattern: \S* + type: string + description: The reference details for the link. + OperationOutcome_Issue: + required: + - code + - severity + allOf: + - $ref: '#/components/schemas/BackboneElement' + - type: object + properties: + severity: + type: string + description: Indicates whether the issue indicates a variation from successful + processing. + enum: + - fatal + - error + - warning + - information + code: + type: string + description: "Describes the type of the issue. The system that creates\ + \ an OperationOutcome SHALL choose the most applicable code from the\ + \ IssueType value set, and may additional provide its own code for the\ + \ error in the details element." + enum: + - invalid + - structure + - required + - value + - invariant + - security + - login + - unknown + - expired + - forbidden + - suppressed + - processing + - not-supported + - duplicate + - multiple-matches + - not-found + - deleted + - too-long + - code-invalid + - extension + - too-costly + - business-rule + - conflict + - transient + - lock-error + - no-store + - exception + - timeout + - incomplete + - throttled + - informational + details: + $ref: '#/components/schemas/CodeableConcept' + diagnostics: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: Additional diagnostic information about the issue. + location: + type: array + items: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "This element is deprecated because it is XML specific.\ + \ It is replaced by issue.expression, which is format independent,\ + \ and simpler to parse. \n\nFor resource issues, this will be a simple\ + \ XPath limited to element names, repetition indicators and the default\ + \ child accessor that identifies one of the elements in the resource\ + \ that caused this issue to be raised. For HTTP errors, will be \"\ + http.\" + the parameter name." + expression: + type: array + items: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "A [simple subset of FHIRPath](fhirpath.html#simple) limited\ + \ to element names, repetition indicators and the default child accessor\ + \ that identifies one of the elements in the resource that caused\ + \ this issue to be raised." + Element: + type: object + properties: + id: + pattern: "[A-Za-z0-9\\-\\.]{1,64}" + type: string + description: Unique id for the element within a resource (for internal references). + This may be any string value that does not contain spaces. + extension: + type: array + items: + $ref: '#/components/schemas/Extension' + BackboneElement: + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + modifierExtension: + type: array + items: + $ref: '#/components/schemas/Extension' + Address: + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + use: + type: string + description: The purpose of this address. + enum: + - home + - work + - temp + - old + - billing + type: + type: string + description: Distinguishes between physical addresses (those you can visit) + and mailing addresses (e.g. PO Boxes and care–of addresses). Most + addresses are both. + enum: + - postal + - physical + - both + text: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: Specifies the entire address as it should be displayed e.g. + on a postal label. This may be provided instead of or as well as the + specific parts. + line: + type: array + items: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "This component contains the house number, apartment number,\ + \ street name, street direction, P.O. Box number, delivery hints,\ + \ and similar address information." + city: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "The name of the city, town, suburb, village or other community\ + \ or delivery center." + district: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: The name of the administrative area (county). + state: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: Sub–unit of a country with limited sovereignty in a + federally organized country. A code may be used if codes are in common + use (e.g. US 2 letter state codes). + postalCode: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: A postal code designating a region defined by the postal + service. + country: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: Country – a nation as commonly understood or generally + accepted. + period: + $ref: '#/components/schemas/Period' + Age: + allOf: + - $ref: '#/components/schemas/Quantity' + - type: object + properties: {} + Annotation: + required: + - text + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + authorReference: + $ref: '#/components/schemas/Reference' + authorString: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: The individual responsible for making the annotation. + time: + pattern: "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1])(T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\\ + .[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00)))?)?)?" + type: string + description: Indicates when this particular annotation was made. + text: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: The text of the annotation in markdown format. + Attachment: + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + contentType: + pattern: "[^\\s]+(\\s[^\\s]+)*" + type: string + description: Identifies the type of the data in the attachment and allows + a method to be chosen to interpret or render the data. Includes mime + type parameters such as charset where appropriate. + language: + pattern: "[^\\s]+(\\s[^\\s]+)*" + type: string + description: The human language of the content. The value can be any valid + value according to BCP 47. + data: + pattern: "(\\s*([0-9a-zA-Z\\+\\=]){4}\\s*)+" + type: string + description: "The actual data of the attachment – a sequence of\ + \ bytes, base64 encoded." + url: + pattern: \S* + type: string + description: A location where the data can be accessed. + size: + type: integer + description: "The number of bytes of data that make up this attachment\ + \ (before base64 encoding, if that is done)." + format: int32 + hash: + pattern: "(\\s*([0-9a-zA-Z\\+\\=]){4}\\s*)+" + type: string + description: The calculated hash of the data using SHA–1. Represented + using base64. + title: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: A label or set of text to display in place of the data. + creation: + pattern: "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1])(T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\\ + .[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00)))?)?)?" + type: string + description: The date that the attachment was first created. + CodeableConcept: + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + coding: + type: array + items: + $ref: '#/components/schemas/Coding' + text: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: A human language representation of the concept as seen/selected/uttered + by the user who entered the data and/or which represents the intended + meaning of the user. + Coding: + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + system: + pattern: \S* + type: string + description: The identification of the code system that defines the meaning + of the symbol in the code. + version: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "The version of the code system which was used when choosing\ + \ this code. Note that a well–maintained code system does not\ + \ need the version reported, because the meaning of codes is consistent\ + \ across versions. However this cannot consistently be assured, and\ + \ when the meaning is not guaranteed to be consistent, the version SHOULD\ + \ be exchanged." + code: + pattern: "[^\\s]+(\\s[^\\s]+)*" + type: string + description: A symbol in syntax defined by the system. The symbol may + be a predefined code or an expression in a syntax defined by the coding + system (e.g. post–coordination). + display: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "A representation of the meaning of the code in the system,\ + \ following the rules of the system." + userSelected: + type: boolean + description: Indicates that this coding was chosen by a user directly + – e.g. off a pick list of available items (codes or displays). + ContactPoint: + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + system: + type: string + description: Telecommunications form for contact point – what communications + system is required to make use of the contact. + enum: + - phone + - fax + - email + - pager + - url + - sms + - other + value: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "The actual contact point details, in a form that is meaningful\ + \ to the designated communication system (i.e. phone number or email\ + \ address)." + use: + type: string + description: Identifies the purpose for the contact point. + enum: + - home + - work + - temp + - old + - mobile + rank: + type: integer + description: Specifies a preferred order in which to use a set of contacts. + ContactPoints with lower rank values are more preferred than those with + higher rank values. + format: int32 + period: + $ref: '#/components/schemas/Period' + Count: + allOf: + - $ref: '#/components/schemas/Quantity' + - type: object + properties: {} + Distance: + allOf: + - $ref: '#/components/schemas/Quantity' + - type: object + properties: {} + Duration: + allOf: + - $ref: '#/components/schemas/Quantity' + - type: object + properties: {} + HumanName: + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + use: + type: string + description: Identifies the purpose for this name. + enum: + - usual + - official + - temp + - nickname + - anonymous + - old + - maiden + text: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: Specifies the entire name as it should be displayed e.g. + on an application UI. This may be provided instead of or as well as + the specific parts. + family: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: The part of a name that links to the genealogy. In some cultures + (e.g. Eritrea) the family name of a son is the first name of his father. + given: + type: array + items: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: Given name. + prefix: + type: array + items: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "Part of the name that is acquired as a title due to academic,\ + \ legal, employment or nobility status, etc. and that appears at the\ + \ start of the name." + suffix: + type: array + items: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "Part of the name that is acquired as a title due to academic,\ + \ legal, employment or nobility status, etc. and that appears at the\ + \ end of the name." + period: + $ref: '#/components/schemas/Period' + Identifier: + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + use: + type: string + description: The purpose of this identifier. + enum: + - usual + - official + - temp + - secondary + - old + type: + $ref: '#/components/schemas/CodeableConcept' + system: + pattern: \S* + type: string + description: "Establishes the namespace for the value – that is,\ + \ a URL that describes a set values that are unique." + value: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: The portion of the identifier typically relevant to the user + and which is unique within the context of the system. + period: + $ref: '#/components/schemas/Period' + assigner: + $ref: '#/components/schemas/Reference' + Money: + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + value: + type: number + description: Numerical value (with implicit precision). + currency: + pattern: "[^\\s]+(\\s[^\\s]+)*" + type: string + description: ISO 4217 Currency Code. + MoneyQuantity: + allOf: + - $ref: '#/components/schemas/Quantity' + - type: object + properties: {} + Period: + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + start: + pattern: "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1])(T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\\ + .[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00)))?)?)?" + type: string + description: The start of the period. The boundary is inclusive. + end: + pattern: "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1])(T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\\ + .[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00)))?)?)?" + type: string + description: "The end of the period. If the end of the period is missing,\ + \ it means no end was known or planned at the time the instance was\ + \ created. The start may be in the past, and the end date in the future,\ + \ which means that period is expected/planned to end at that time." + Quantity: + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + value: + type: number + description: The value of the measured amount. The value includes an implicit + precision in the presentation of the value. + comparator: + type: string + description: "How the value should be understood and represented –\ + \ whether the actual value is greater or less than the stated value\ + \ due to measurement issues; e.g. if the comparator is \"<\" , then\ + \ the real value is < stated value." + enum: + - < + - <= + - '>=' + - '>' + unit: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: A human–readable form of the unit. + system: + pattern: \S* + type: string + description: The identification of the system that provides the coded + form of the unit. + code: + pattern: "[^\\s]+(\\s[^\\s]+)*" + type: string + description: A computer processable form of the unit in some unit representation + system. + Range: + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + low: + $ref: '#/components/schemas/SimpleQuantity' + high: + $ref: '#/components/schemas/SimpleQuantity' + Ratio: + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + numerator: + $ref: '#/components/schemas/Quantity' + denominator: + $ref: '#/components/schemas/Quantity' + Reference: + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + reference: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "A reference to a location at which the other resource is\ + \ found. The reference may be a relative reference, in which case it\ + \ is relative to the service base URL, or an absolute URL that resolves\ + \ to the location where the resource is found. The reference may be\ + \ version specific or not. If the reference is not to a FHIR RESTful\ + \ server, then it should be assumed to be version specific. Internal\ + \ fragment references (start with '#') refer to contained resources." + type: + pattern: \S* + type: string + description: "The expected type of the target of the reference. If both\ + \ Reference.type and Reference.reference are populated and Reference.reference\ + \ is a FHIR URL, both SHALL be consistent.\n\nThe type is the Canonical\ + \ URL of Resource Definition that is the type this reference refers\ + \ to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/\ + \ e.g. \"Patient\" is a reference to http://hl7.org/fhir/StructureDefinition/Patient.\ + \ Absolute URLs are only allowed for logical models (and can only be\ + \ used in references in logical models, not resources)." + identifier: + $ref: '#/components/schemas/Identifier' + display: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: Plain text narrative that identifies the resource in addition + to the resource reference. + SampledData: + required: + - dimensions + - origin + - period + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + origin: + $ref: '#/components/schemas/SimpleQuantity' + period: + type: number + description: "The length of time between sampling times, measured in milliseconds." + factor: + type: number + description: A correction factor that is applied to the sampled data points + before they are added to the origin. + lowerLimit: + type: number + description: The lower limit of detection of the measured points. This + is needed if any of the data points have the value "L" (lower than detection + limit). + upperLimit: + type: number + description: The upper limit of detection of the measured points. This + is needed if any of the data points have the value "U" (higher than + detection limit). + dimensions: + type: integer + description: "The number of sample points at each time point. If this\ + \ value is greater than one, then the dimensions will be interlaced\ + \ – all the sample points for a point in time will be recorded\ + \ at once." + format: int32 + data: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "A series of data points which are decimal values separated\ + \ by a single space (character u20). The special values \"E\" (error),\ + \ \"L\" (below detection limit) and \"U\" (above detection limit) can\ + \ also be used in place of a decimal value." + SimpleQuantity: + allOf: + - $ref: '#/components/schemas/Quantity' + - type: object + properties: {} + Signature: + required: + - type + - when + - who + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + type: + type: array + items: + $ref: '#/components/schemas/Coding' + when: + pattern: "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\\ + .[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))" + type: string + description: When the digital signature was signed. + who: + $ref: '#/components/schemas/Reference' + onBehalfOf: + $ref: '#/components/schemas/Reference' + targetFormat: + pattern: "[^\\s]+(\\s[^\\s]+)*" + type: string + description: A mime type that indicates the technical format of the target + resources signed by the signature. + sigFormat: + pattern: "[^\\s]+(\\s[^\\s]+)*" + type: string + description: "A mime type that indicates the technical format of the signature.\ + \ Important mime types are application/signature+xml for X ML DigSig,\ + \ application/jose for JWS, and image/* for a graphical image of a signature,\ + \ etc." + data: + pattern: "(\\s*([0-9a-zA-Z\\+\\=]){4}\\s*)+" + type: string + description: The base64 encoding of the Signature content. When signature + is not recorded electronically this element would be empty. + Timing: + allOf: + - $ref: '#/components/schemas/BackboneElement' + - type: object + properties: + event: + type: array + items: + pattern: "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1])(T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\\ + .[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00)))?)?)?" + type: string + description: Identifies specific times when the event occurs. + repeat: + $ref: '#/components/schemas/Timing_Repeat' + code: + $ref: '#/components/schemas/CodeableConcept' + Timing_Repeat: + allOf: + - $ref: '#/components/schemas/BackboneElement' + - type: object + properties: + boundsDuration: + $ref: '#/components/schemas/Duration' + boundsRange: + $ref: '#/components/schemas/Range' + boundsPeriod: + $ref: '#/components/schemas/Period' + count: + type: integer + description: "A total count of the desired number of repetitions across\ + \ the duration of the entire timing specification. If countMax is present,\ + \ this element indicates the lower bound of the allowed range of count\ + \ values." + format: int32 + countMax: + type: integer + description: "If present, indicates that the count is a range –\ + \ so to perform the action between [count] and [countMax] times." + format: int32 + duration: + type: number + description: "How long this thing happens for when it happens. If durationMax\ + \ is present, this element indicates the lower bound of the allowed\ + \ range of the duration." + durationMax: + type: number + description: "If present, indicates that the duration is a range –\ + \ so to perform the action between [duration] and [durationMax] time\ + \ length." + durationUnit: + type: string + description: "The units of time for the duration, in UCUM units." + enum: + - s + - min + - h + - d + - wk + - mo + - a + frequency: + type: integer + description: "The number of times to repeat the action within the specified\ + \ period. If frequencyMax is present, this element indicates the lower\ + \ bound of the allowed range of the frequency." + format: int32 + frequencyMax: + type: integer + description: "If present, indicates that the frequency is a range –\ + \ so to repeat between [frequency] and [frequencyMax] times within the\ + \ period or period range." + format: int32 + period: + type: number + description: "Indicates the duration of time over which repetitions are\ + \ to occur; e.g. to express \"3 times per day\", 3 would be the frequency\ + \ and \"1 day\" would be the period. If periodMax is present, this element\ + \ indicates the lower bound of the allowed range of the period length." + periodMax: + type: number + description: "If present, indicates that the period is a range from [period]\ + \ to [periodMax], allowing expressing concepts such as \"do this once\ + \ every 3–5 days." + periodUnit: + type: string + description: The units of time for the period in UCUM units. + enum: + - s + - min + - h + - d + - wk + - mo + - a + dayOfWeek: + type: array + items: + type: string + description: "If one or more days of week is provided, then the action\ + \ happens only on the specified day(s)." + enum: + - mon + - tue + - wed + - thu + - fri + - sat + - sun + timeOfDay: + type: array + items: + pattern: "([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\.[0-9]+)?" + type: string + description: Specified time of day for action to take place. + when: + type: array + items: + type: string + description: "An approximate time period during the day, potentially\ + \ linked to an event of daily living that indicates when the action\ + \ should occur." + enum: + - MORN + - MORN.early + - MORN.late + - NOON + - AFT + - AFT.early + - AFT.late + - EVE + - EVE.early + - EVE.late + - NIGHT + - PHS + - HS + - WAKE + - C + - CM + - CD + - CV + - AC + - ACM + - ACD + - ACV + - PC + - PCM + - PCD + - PCV + offset: + type: integer + description: "The number of minutes from the event. If the event code\ + \ does not indicate whether the minutes is before or after the event,\ + \ then the offset is assumed to be after the event." + format: int32 + ContactDetail: + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + name: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: The name of an individual to contact. + telecom: + type: array + items: + $ref: '#/components/schemas/ContactPoint' + RelatedArtifact: + required: + - type + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + type: + type: string + description: The type of relationship to the related artifact. + enum: + - documentation + - justification + - citation + - predecessor + - successor + - derived-from + - depends-on + - composed-of + label: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "A short label that can be used to reference the citation\ + \ from elsewhere in the containing artifact, such as a footnote index." + display: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "A brief description of the document or knowledge resource\ + \ being referenced, suitable for display to a consumer." + citation: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: A bibliographic citation for the related artifact. This text + SHOULD be formatted according to an accepted citation format. + url: + pattern: \S* + type: string + description: A url for the artifact that can be followed to access the + actual content. + document: + $ref: '#/components/schemas/Attachment' + resource: + pattern: \S* + type: string + description: "The related resource, such as a library, value set, profile,\ + \ or other knowledge resource." + UsageContext: + required: + - code + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + code: + $ref: '#/components/schemas/Coding' + valueCodeableConcept: + $ref: '#/components/schemas/CodeableConcept' + valueQuantity: + $ref: '#/components/schemas/Quantity' + valueRange: + $ref: '#/components/schemas/Range' + valueReference: + $ref: '#/components/schemas/Reference' + Meta: + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + versionId: + pattern: "[A-Za-z0-9\\-\\.]{1,64}" + type: string + description: "The version specific identifier, as it appears in the version\ + \ portion of the URL. This value changes when the resource is created,\ + \ updated, or deleted." + lastUpdated: + pattern: "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\\ + .[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))" + type: string + description: When the resource last changed – e.g. when the version + changed. + source: + pattern: \S* + type: string + description: "A uri that identifies the source system of the resource.\ + \ This provides a minimal amount of [Provenance](provenance.html#) information\ + \ that can be used to track or differentiate the source of information\ + \ in the resource. The source may identify another FHIR server, document,\ + \ message, database, etc." + profile: + type: array + items: + pattern: \S* + type: string + description: "A list of profiles (references to [StructureDefinition](structuredefinition.html#)\ + \ resources) that this resource claims to conform to. The URL is a\ + \ reference to [StructureDefinition.url](structuredefinition–definitions.html#StructureDefinition.url)." + security: + type: array + items: + $ref: '#/components/schemas/Coding' + tag: + type: array + items: + $ref: '#/components/schemas/Coding' + Narrative: + required: + - div + - status + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + status: + type: string + description: "The status of the narrative – whether it's entirely\ + \ generated (from just the defined data or the extensions too), or whether\ + \ a human authored it and it may contain additional data." + enum: + - generated + - extensions + - additional + - empty + div: + type: string + description: "The actual narrative content, a stripped down version of\ + \ XHTML." + Extension: + required: + - url + allOf: + - $ref: '#/components/schemas/Element' + - type: object + properties: + url: + pattern: \S* + type: string + description: Source of the definition for the extension code – a + logical name or a URL. + valueBase64Binary: + pattern: "(\\s*([0-9a-zA-Z\\+\\=]){4}\\s*)+" + type: string + description: "Value of extension – must be one of a constrained\ + \ set of the data types (see [Extensibility](extensibility.html) for\ + \ a list)." + valueBoolean: + type: boolean + description: "Value of extension – must be one of a constrained\ + \ set of the data types (see [Extensibility](extensibility.html) for\ + \ a list)." + valueCanonical: + pattern: \S* + type: string + description: "Value of extension – must be one of a constrained\ + \ set of the data types (see [Extensibility](extensibility.html) for\ + \ a list)." + valueCode: + pattern: "[^\\s]+(\\s[^\\s]+)*" + type: string + description: "Value of extension – must be one of a constrained\ + \ set of the data types (see [Extensibility](extensibility.html) for\ + \ a list)." + valueDate: + pattern: "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1]))?)?" + type: string + description: "Value of extension – must be one of a constrained\ + \ set of the data types (see [Extensibility](extensibility.html) for\ + \ a list)." + valueDateTime: + pattern: "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1])(T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\\ + .[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00)))?)?)?" + type: string + description: "Value of extension – must be one of a constrained\ + \ set of the data types (see [Extensibility](extensibility.html) for\ + \ a list)." + valueDecimal: + type: number + description: "Value of extension – must be one of a constrained\ + \ set of the data types (see [Extensibility](extensibility.html) for\ + \ a list)." + valueId: + pattern: "[A-Za-z0-9\\-\\.]{1,64}" + type: string + description: "Value of extension – must be one of a constrained\ + \ set of the data types (see [Extensibility](extensibility.html) for\ + \ a list)." + valueInstant: + pattern: "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\\ + .[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))" + type: string + description: "Value of extension – must be one of a constrained\ + \ set of the data types (see [Extensibility](extensibility.html) for\ + \ a list)." + valueInteger: + type: integer + description: "Value of extension – must be one of a constrained\ + \ set of the data types (see [Extensibility](extensibility.html) for\ + \ a list)." + format: int32 + valueMarkdown: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "Value of extension – must be one of a constrained\ + \ set of the data types (see [Extensibility](extensibility.html) for\ + \ a list)." + valueOid: + pattern: "urn:oid:[0-2](\\.(0|[1-9][0-9]*))+" + type: string + description: "Value of extension – must be one of a constrained\ + \ set of the data types (see [Extensibility](extensibility.html) for\ + \ a list)." + valuePositiveInt: + type: integer + description: "Value of extension – must be one of a constrained\ + \ set of the data types (see [Extensibility](extensibility.html) for\ + \ a list)." + format: int32 + valueString: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "Value of extension – must be one of a constrained\ + \ set of the data types (see [Extensibility](extensibility.html) for\ + \ a list)." + valueTime: + pattern: "([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\.[0-9]+)?" + type: string + description: "Value of extension – must be one of a constrained\ + \ set of the data types (see [Extensibility](extensibility.html) for\ + \ a list)." + valueUnsignedInt: + type: integer + description: "Value of extension – must be one of a constrained\ + \ set of the data types (see [Extensibility](extensibility.html) for\ + \ a list)." + format: int32 + valueUri: + pattern: \S* + type: string + description: "Value of extension – must be one of a constrained\ + \ set of the data types (see [Extensibility](extensibility.html) for\ + \ a list)." + valueUrl: + pattern: \S* + type: string + description: "Value of extension – must be one of a constrained\ + \ set of the data types (see [Extensibility](extensibility.html) for\ + \ a list)." + valueUuid: + pattern: "urn:uuid:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}" + type: string + description: "Value of extension – must be one of a constrained\ + \ set of the data types (see [Extensibility](extensibility.html) for\ + \ a list)." + valueAddress: + $ref: '#/components/schemas/Address' + valueAge: + $ref: '#/components/schemas/Age' + valueAnnotation: + $ref: '#/components/schemas/Annotation' + valueAttachment: + $ref: '#/components/schemas/Attachment' + valueCodeableConcept: + $ref: '#/components/schemas/CodeableConcept' + valueCoding: + $ref: '#/components/schemas/Coding' + valueContactPoint: + $ref: '#/components/schemas/ContactPoint' + valueCount: + $ref: '#/components/schemas/Count' + valueDistance: + $ref: '#/components/schemas/Distance' + valueDuration: + $ref: '#/components/schemas/Duration' + valueHumanName: + $ref: '#/components/schemas/HumanName' + valueIdentifier: + $ref: '#/components/schemas/Identifier' + valueMoney: + $ref: '#/components/schemas/Money' + valuePeriod: + $ref: '#/components/schemas/Period' + valueQuantity: + $ref: '#/components/schemas/Quantity' + valueRange: + $ref: '#/components/schemas/Range' + valueRatio: + $ref: '#/components/schemas/Ratio' + valueReference: + $ref: '#/components/schemas/Reference' + valueSampledData: + $ref: '#/components/schemas/SampledData' + valueSignature: + $ref: '#/components/schemas/Signature' + valueTiming: + $ref: '#/components/schemas/Timing' + valueContactDetail: + $ref: '#/components/schemas/ContactDetail' + valueRelatedArtifact: + $ref: '#/components/schemas/RelatedArtifact' + valueUsageContext: + $ref: '#/components/schemas/UsageContext' + valueMeta: + $ref: '#/components/schemas/Meta' + Slot: + required: + - end + - schedule + - start + - status + allOf: + - $ref: '#/components/schemas/DomainResource' + - type: object + properties: + serviceType: + $ref: '#/components/schemas/CodeableConcept' + identifier: + $ref: '#/components/schemas/Identifier' + appointmentType: + $ref: '#/components/schemas/CodeableConcept' + extension: + $ref: '#/components/schemas/Extension' + specialty: + $ref: '#/components/schemas/CodeableConcept' + modifierExtension: + $ref: '#/components/schemas/Extension' + start: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: Date/Time that the slot is to begin. + language: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: The base language in which the resource is written. + serviceCategory: + $ref: '#/components/schemas/CodeableConcept' + schedule: + $ref: '#/components/schemas/Reference' + contained: + $ref: '#/components/schemas/Resource' + meta: + $ref: '#/components/schemas/Meta' + overbooked: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "This slot has already been overbooked, appointments are\ + \ unlikely to be accepted for this time." + implicitRules: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "A reference to a set of rules that were followed when the\ + \ resource was constructed, and which must be understood when processing\ + \ the content. Often, this is a reference to an implementation guide\ + \ that defines the special rules along with other profiles etc." + end: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: Date/Time that the slot is to conclude. + comment: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: Comments on the slot to describe any extended information. + Such as custom constraints on the slot. + id: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: "The logical id of the resource, as used in the URL for the\ + \ resource. Once assigned, this value never changes." + text: + $ref: '#/components/schemas/Narrative' + status: + pattern: "[ \\r\\n\\t\\S]+" + type: string + description: busy | free | busy-unavailable | busy-tentative | entered-in-error. + parameters: + _lastUpdatedParam: + name: _lastUpdated + in: query + description: When the resource version last changed + required: false + style: form + explode: true + schema: + type: string + _securityParam: + name: _security + in: query + description: Security Labels applied to this resource + required: false + style: form + explode: true + schema: + type: string + _tagParam: + name: _tag + in: query + description: Tags applied to this resource + required: false + style: form + explode: true + schema: + type: string + _idParam: + name: _id + in: query + description: Logical id of this artifact + required: false + style: form + explode: true + schema: + type: string + _sourceParam: + name: _source + in: query + description: Identifies where the resource comes from + required: false + style: form + explode: true + schema: + type: string + _profileParam: + name: _profile + in: query + description: Profiles this resource claims to conform to + required: false + style: form + explode: true + schema: + type: string + securitySchemes: + default: + type: oauth2 + flows: + implicit: + authorizationUrl: https://localhost:8243/authorize + scopes: {} +x-wso2-oh-fhir-resourceType: Slot +x-wso2-oh-fhir-profile: +- http://hl7.org/fhir/StructureDefinition/Slot diff --git a/schedule-appointment-process-API/aggregate-service/practitioner_api_config.bal b/schedule-appointment-process-API/aggregate-service/practitioner_api_config.bal new file mode 100644 index 000000000..b7b282a4a --- /dev/null +++ b/schedule-appointment-process-API/aggregate-service/practitioner_api_config.bal @@ -0,0 +1,186 @@ +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). All Rights Reserved. + +// This software is the property of WSO2 LLC. and its suppliers, if any. +// Dissemination of any information or reproduction of any material contained +// herein is strictly forbidden, unless permitted by WSO2 in accordance with +// the WSO2 Software License available at: https://wso2.com/licenses/eula/3.2 +// For specific language governing the permissions and limitations under +// this license, please see the license as well as any agreement you’ve +// entered into with WSO2 governing the purchase of this software and any +// associated services. +// +// +// AUTO-GENERATED FILE. +// +// This file is auto-generated by Ballerina. +// Developers are allowed to modify this file as per the requirement. + +import ballerinax/health.fhir.r4; + +final r4:ResourceAPIConfig practitionerApiConfig = { + resourceType: "Practitioner", + profiles: [ + "http://hl7.org/fhir/StructureDefinition/Practitioner" + ], + defaultProfile: (), + searchParameters: [ + { + name: "communication", + active: true, + information: { + description: "One of the languages that the practitioner can communicate with", + builtin: false, + documentation: "http://hl7.org/fhir/SearchParameter/Practitioner-communication" + } + }, + { + name: "name", + active: true, + information: { + description: "A server defined search that may match any of the string fields in the HumanName, including family, give, prefix, suffix, suffix, and/or text", + builtin: false, + documentation: "http://hl7.org/fhir/SearchParameter/Practitioner-name" + } + }, + { + name: "email", + active: true, + information: { + description: "[Practitioner](practitioner.html): A value in an email contact", + builtin: false, + documentation: "http://hl7.org/fhir/SearchParameter/individual-email" + } + }, + { + name: "address", + active: true, + information: { + description: "[Practitioner](practitioner.html): A server defined search that may match any of the string fields in the Address, including line, city, district, state, country, postalCode, and/or text", + builtin: false, + documentation: "http://hl7.org/fhir/SearchParameter/individual-address" + } + }, + { + name: "active", + active: true, + information: { + description: "Whether the practitioner record is active", + builtin: false, + documentation: "http://hl7.org/fhir/SearchParameter/Practitioner-active" + } + }, + { + name: "address-use", + active: true, + information: { + description: "[Practitioner](practitioner.html): A use code specified in an address", + builtin: false, + documentation: "http://hl7.org/fhir/SearchParameter/individual-address-use" + } + }, + { + name: "phonetic", + active: true, + information: { + description: "[Practitioner](practitioner.html): A portion of either family or given name using some kind of phonetic matching algorithm", + builtin: false, + documentation: "http://hl7.org/fhir/SearchParameter/individual-phonetic" + } + }, + { + name: "address-country", + active: true, + information: { + description: "[Practitioner](practitioner.html): A country specified in an address", + builtin: false, + documentation: "http://hl7.org/fhir/SearchParameter/individual-address-country" + } + }, + { + name: "phone", + active: true, + information: { + description: "[Practitioner](practitioner.html): A value in a phone contact", + builtin: false, + documentation: "http://hl7.org/fhir/SearchParameter/individual-phone" + } + }, + { + name: "identifier", + active: true, + information: { + description: "A practitioner's Identifier", + builtin: false, + documentation: "http://hl7.org/fhir/SearchParameter/Practitioner-identifier" + } + }, + { + name: "address-city", + active: true, + information: { + description: "[Practitioner](practitioner.html): A city specified in an address", + builtin: false, + documentation: "http://hl7.org/fhir/SearchParameter/individual-address-city" + } + }, + { + name: "gender", + active: true, + information: { + description: "[Practitioner](practitioner.html): Gender of the practitioner", + builtin: false, + documentation: "http://hl7.org/fhir/SearchParameter/individual-gender" + } + }, + { + name: "telecom", + active: true, + information: { + description: "[Practitioner](practitioner.html): The value in any kind of contact", + builtin: false, + documentation: "http://hl7.org/fhir/SearchParameter/individual-telecom" + } + }, + { + name: "address-state", + active: true, + information: { + description: "[Practitioner](practitioner.html): A state specified in an address", + builtin: false, + documentation: "http://hl7.org/fhir/SearchParameter/individual-address-state" + } + }, + { + name: "given", + active: true, + information: { + description: "[Practitioner](practitioner.html): A portion of the given name", + builtin: false, + documentation: "http://hl7.org/fhir/SearchParameter/individual-given" + } + }, + { + name: "address-postalcode", + active: true, + information: { + description: "[Practitioner](practitioner.html): A postalCode specified in an address", + builtin: false, + documentation: "http://hl7.org/fhir/SearchParameter/individual-address-postalcode" + } + }, + { + name: "family", + active: true, + information: { + description: "[Practitioner](practitioner.html): A portion of the family name", + builtin: false, + documentation: "http://hl7.org/fhir/SearchParameter/individual-family" + } + } + ], + operations: [ + + ], + serverConfig: (), + authzConfig: () +}; diff --git a/schedule-appointment-process-API/aggregate-service/service.bal b/schedule-appointment-process-API/aggregate-service/service.bal new file mode 100644 index 000000000..2226b6a0c --- /dev/null +++ b/schedule-appointment-process-API/aggregate-service/service.bal @@ -0,0 +1,151 @@ +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). All Rights Reserved. +// This software is the property of WSO2 LLC. and its suppliers, if any. +// Dissemination of any information or reproduction of any material contained +// herein is strictly forbidden, unless permitted by WSO2 in accordance with +// the WSO2 Software License available at: https://wso2.com/licenses/eula/3.2 +// For specific language governing the permissions and limitations under +// this license, please see the license as well as any agreement you’ve +// entered into with WSO2 governing the purchase of this software and any +// associated services. +// +// This file is auto-generated by WSO2 Healthcare Team for managing utility functions. +// Developers are allowed modify this file as per the requirement. +import ballerinax/health.clients.fhir as fhirClient; +import ballerinax/health.fhir.r4; +import ballerinax/health.fhirr4; +import ballerinax/health.fhir.r4.international401; + +public type Location international401:Location; +public type Appointment international401:Appointment; + +configurable string cernerUrl = ?; +configurable string tokenUrl = ?; +configurable string clientId = ?; +configurable string clientSecret = ?; +configurable string[] scopes = ?; + +// Create a FHIR client configs for practitioner ,slot, location and appointment +fhirClient:FHIRConnectorConfig cernerConfig = { + baseURL: cernerUrl, + mimeType: fhirClient:FHIR_JSON, + authConfig: { + tokenUrl: tokenUrl, + clientId: clientId, + clientSecret: clientSecret, + scopes: scopes + } +}; + +final fhirClient:FHIRConnector fhirConnectorObj = check new (cernerConfig); + +service / on new fhirr4:Listener(8081, practitionerApiConfig) { + + isolated resource function get fhir/r4/Practitioner(r4:FHIRContext fhirContext) returns r4:Bundle|error { + + map queryParams = {}; + + // Fetch the search parameter: family + r4:StringSearchParameter[]|r4:FHIRTypeError? familyArray = fhirContext.getStringSearchParameter("family"); + if familyArray is r4:StringSearchParameter[] && familyArray.length() > 0 { + queryParams["family"] = [familyArray[0].value]; + } + + // Fetch the search parameter: given + r4:StringSearchParameter[]|r4:FHIRTypeError? givenArray = fhirContext.getStringSearchParameter("given"); + if givenArray is r4:StringSearchParameter[] && givenArray.length() > 0 { + queryParams["given"] = [givenArray[0].value]; + } + + fhirClient:FHIRResponse searchResponse = check fhirConnectorObj->search("Practitioner", queryParams); + + return searchResponse.'resource.cloneWithType(); + } + +} + +service / on new fhirr4:Listener(8082, slotApiConfig) { + isolated resource function get fhir/r4/Slot(r4:FHIRContext fhirContext) returns json[]|r4:Bundle|error|error { + map queryParams = {}; + r4:BundleEntry[] newBundleEntry = []; + + // Fetch the search parameter: practitioner + r4:StringSearchParameter[]|r4:FHIRTypeError? practitionerArray = fhirContext.getStringSearchParameter("practitioner"); + if practitionerArray is r4:StringSearchParameter[] && practitionerArray.length() > 0 { + queryParams["practitioner"] = [practitionerArray[0].value]; + } + + // Fetch the search parameter: startDate + r4:StringSearchParameter[]|r4:FHIRTypeError? startDateArray = fhirContext.getStringSearchParameter("startDate"); + + if (startDateArray is r4:StringSearchParameter[] && startDateArray.count() > 0) { + //construct date to Cerner accepting format + queryParams["start"] = [string `ge${startDateArray[0].value}T06:00:00Z`, string `lt${startDateArray[0].value}T23:55:55Z`]; + } + + queryParams["service-type"] = ["https://fhir.cerner.com/ec2458f2-1e24-41c8-b71b-0e701af7583d/codeSet/14249|4047611"]; + queryParams["_count"] = ["40"]; + + fhirClient:FHIRResponse searchResponse = check fhirConnectorObj->search("Slot", queryParams); + + //From the Slot Bundle extract the slots for the selected two locations + r4:Bundle|error resourceResponse = searchResponse.'resource.cloneWithType(); + if resourceResponse is r4:Bundle { + r4:BundleEntry[]? optionalEntries = resourceResponse.entry; + if optionalEntries is r4:BundleEntry[] { + foreach var entry in optionalEntries { + json|error resourceEntry = entry["resource"].toJson(); + + if resourceEntry is json { + json|error resourceEntryExtension = check resourceEntry.extension; + + if resourceEntryExtension is json[] { + foreach var ext in resourceEntryExtension { + if ext is map { + if ext["valueReference"] is map { + json|error location = check ext["valueReference"].reference; + + if location == "Location/25442717" || location == "Location/32216061"{ + r4:BundleEntry newEntry = { + 'resource: resourceEntry + }; + newBundleEntry.push(newEntry); + } + + } + } + } + + } + } + + } + } + } + + // Construct a new Slot Bundle that has slots only from the selected locations + r4:Bundle newBundle = { + resourceType: "Bundle", + entry: newBundleEntry + , + 'type: "searchset" + }; + return newBundle; + } +} + +service / on new fhirr4:Listener(8084, locationApiConfig) { + + isolated resource function get fhir/r4/Location/[string id](r4:FHIRContext fhirContext) returns Location|error { + + fhirClient:FHIRResponse readByIdResponse = check fhirConnectorObj->getById("Location", id); + return readByIdResponse.'resource.cloneWithType(Location); + } +} + +service / on new fhirr4:Listener(8083, appointmentApiConfig) { + isolated resource function post fhir/r4/Appointment(r4:FHIRContext fhirContext, json appointment) returns int|error { + + fhirClient:FHIRResponse postResponse = check fhirConnectorObj->create(appointment); + return postResponse.httpStatusCode; + } +} diff --git a/schedule-appointment-process-API/aggregate-service/slot_api_config.bal b/schedule-appointment-process-API/aggregate-service/slot_api_config.bal new file mode 100644 index 000000000..58c5b6745 --- /dev/null +++ b/schedule-appointment-process-API/aggregate-service/slot_api_config.bal @@ -0,0 +1,118 @@ +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). All Rights Reserved. + +// This software is the property of WSO2 LLC. and its suppliers, if any. +// Dissemination of any information or reproduction of any material contained +// herein is strictly forbidden, unless permitted by WSO2 in accordance with +// the WSO2 Software License available at: https://wso2.com/licenses/eula/3.2 +// For specific language governing the permissions and limitations under +// this license, please see the license as well as any agreement you’ve +// entered into with WSO2 governing the purchase of this software and any +// associated services. +// +// +// AUTO-GENERATED FILE. DO NOT MODIFY. +// +// This file is auto-generated by WSO2 Healthcare Team for managing utility functions. +// Developers are allowed modify this file as per the requirement. + +import ballerinax/health.fhir.r4; + +final r4:ResourceAPIConfig slotApiConfig = { + resourceType: "Slot", + profiles: [ + "http://hl7.org/fhir/StructureDefinition/Slot" + ], + defaultProfile: (), + searchParameters: [ + { + name: "status", + active: true, + information: { + description: "The free/busy status of the appointment", + builtin: false, + documentation: "http://hl7.org/fhir/SearchParameter/Slot-status" + } + }, + { + name: "identifier", + active: true, + information: { + description: "A Slot Identifier", + builtin: false, + documentation: "http://hl7.org/fhir/SearchParameter/Slot-identifier" + } + }, + { + name: "schedule", + active: true, + information: { + description: "The Schedule Resource that we are seeking a slot within", + builtin: false, + documentation: "http://hl7.org/fhir/SearchParameter/Slot-schedule" + } + }, + { + name: "start", + active: true, + information: { + description: "Appointment date/time.", + builtin: false, + documentation: "http://hl7.org/fhir/SearchParameter/Slot-start" + } + }, + { + name: "service-type", + active: true, + information: { + description: "The type of appointments that can be booked into the slot", + builtin: false, + documentation: "http://hl7.org/fhir/SearchParameter/Slot-service-type" + } + }, + { + name: "service-category", + active: true, + information: { + description: "A broad categorization of the service that is to be performed during this appointment", + builtin: false, + documentation: "http://hl7.org/fhir/SearchParameter/Slot-service-category" + } + }, + { + name: "specialty", + active: true, + information: { + description: "The specialty of a practitioner that would be required to perform the service requested in this appointment", + builtin: false, + documentation: "http://hl7.org/fhir/SearchParameter/Slot-specialty" + } + }, + { + name: "appointment-type", + active: true, + information: { + description: "The style of appointment or patient that may be booked in the slot (not service type)", + builtin: false, + documentation: "http://hl7.org/fhir/SearchParameter/Slot-appointment-type" + } + }, + { + name: "practitioner", + active: true + }, + { + name: "startDate", + active: true + + }, + { + name: "endDate", + active: true + } + ], + operations: [ + + ], + serverConfig: (), + authzConfig: () +}; diff --git a/schedule-appointment-process-API/img/appointment-booking.png b/schedule-appointment-process-API/img/appointment-booking.png new file mode 100644 index 000000000..a264935dc Binary files /dev/null and b/schedule-appointment-process-API/img/appointment-booking.png differ