Skip to content

Commit

Permalink
Add the mCSD feed transaction (CH:mCSD-1)
Browse files Browse the repository at this point in the history
Fixes #158
  • Loading branch information
qligier committed Aug 30, 2024
1 parent 911ab6e commit 63fa27c
Show file tree
Hide file tree
Showing 13 changed files with 379 additions and 3 deletions.
28 changes: 28 additions & 0 deletions input/ch.fhir.ig.ch-epr-fhir.xml
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,11 @@
<packageId value="ihe.iti.mcsd"/>
<version value="3.8.0"/>
</dependsOn>
<dependsOn id="ihebalp">
<uri value="https://profiles.ihe.net/ITI/BALP/ImplementationGuide/ihe.iti.balp"/>
<packageId value="ihe.iti.balp"/>
<version value="1.1.3"/>
</dependsOn>
<definition>

<!-- examples -->
Expand Down Expand Up @@ -481,6 +486,24 @@ Relationship in the Swiss examples (CN=CommunityA:00000001001,OU=Relationship,DC
</reference>
<exampleBoolean value="false"/>
</resource>
<resource>
<reference>
<reference value="StructureDefinition/mCSD.Add.Audit"/>
</reference>
<exampleBoolean value="false"/>
</resource>
<resource>
<reference>
<reference value="StructureDefinition/mCSD.Update.Audit"/>
</reference>
<exampleBoolean value="false"/>
</resource>
<resource>
<reference>
<reference value="StructureDefinition/mCSD.Delete.Audit"/>
</reference>
<exampleBoolean value="false"/>
</resource>

<!-- CH EPR FHIR: Data Type Profiles -->
<resource>
Expand Down Expand Up @@ -735,6 +758,11 @@ Relationship in the Swiss examples (CN=CommunityA:00000001001,OU=Relationship,DC
<title value="Find Matching Care Services [ITI-90]"/>
<generation value="markdown"/>
</page>
<page>
<nameUrl value="ch-mcsd-1.html"/>
<title value="Care Services Feed [CH:mCSD-1]"/>
<generation value="markdown"/>
</page>
<page>
<nameUrl value="ppq-3.html"/>
<title value="Mobile Privacy Policy Feed [PPQ-3]"/>
Expand Down
25 changes: 25 additions & 0 deletions input/fsh/mcsd_auditevent.fsh
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
Profile: CHmCSD1AddAudit
Parent: IHE.BasicAudit.Create // https://profiles.ihe.net/ITI/BALP/1.1.3/StructureDefinition-IHE.BasicAudit.Create.html
Id: mCSD.Add.Audit
Title: "CH mCSD Audit Event: CH:mCSD-1 Add Care Service"
Description: "This profile describes the event of adding a Care Service to the Care Services Directory by the Care Services Source actor. It applies to both the Source and Directory actors."
* insert mcsd-ch1-basis

Profile: CHmCSD1UpdateAudit
Parent: IHE.BasicAudit.Update // https://profiles.ihe.net/ITI/BALP/1.1.3/StructureDefinition-IHE.BasicAudit.Update.html
Id: mCSD.Update.Audit
Title: "CH mCSD Audit Event: CH:mCSD-1 Update Care Service"
Description: "This profile describes the event of updating a Care Service in the Care Services Directory by the Care Services Source actor. It applies to both the Source and Directory actors."
* insert mcsd-ch1-basis

Profile: CHmCSD1DeleteAudit
Parent: IHE.BasicAudit.Delete // https://profiles.ihe.net/ITI/BALP/1.1.3/StructureDefinition-IHE.BasicAudit.Delete.html
Id: mCSD.Delete.Audit
Title: "CH mCSD Audit Event: CH:mCSD-1 Delete Care Service"
Description: "This profile describes the event of deleting a Care Service from the Care Services Directory by the Care Services Source actor. It applies to both the Source and Directory actors."
* insert mcsd-ch1-basis


RuleSet: mcsd-ch1-basis
* agent[client] ^short = "Care Services Source agent"
* agent[server] ^short = "Care Services Directory agent"
87 changes: 85 additions & 2 deletions input/fsh/mcsd_capabilitystatements.fsh
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Server Actor
// Server Actor for ITI-90
Instance: CH.mCSD.CareServicesSelectiveSupplier
InstanceOf: CapabilityStatement
Usage: #definition
Expand Down Expand Up @@ -90,7 +90,7 @@ Usage: #definition
* rest.searchParam[=].documentation = "The values for this shall support these prefixes: ge and le"


// Client Actor
// Client Actor for ITI-90
Instance: CH.mCSD.CareServicesSelectiveConsumer
InstanceOf: CapabilityStatement
Usage: #definition
Expand Down Expand Up @@ -180,3 +180,86 @@ Usage: #definition
* rest.searchParam[+].name = "_lastUpdated"
* rest.searchParam[=].type = #token
* rest.searchParam[=].documentation = "The values for this shall support these prefixes: ge and le"



// Server Actor for CH:mCSD-1
Instance: CH.mCSD.CareServicesDirectory
InstanceOf: CapabilityStatement
Usage: #definition
* url = "http://fhir.ch/ig/ch-epr-fhir/CapabilityStatement/CH.mCSD.CareServicesDirectory"
* name = "CH_mCSD_Care_Services_Directory"
* title = "mCSD Care Services Directory (server)"
* status = #active
* experimental = false
* date = "2024-08-13"
* description = "CapabilityStatement for Server Actor in the Swiss mCSD profile extension."
* kind = #requirements
* fhirVersion = #4.0.1
* format[0] = #application/fhir+xml
* format[+] = #application/fhir+json
* rest.mode = #server
* rest.documentation = "CH:mCSD-1 endpoint"
* rest.interaction[+].code = #batch

* rest.resource[+].type = #Organization
* rest.resource[=].profile[+] = "http://fhir.ch/ig/ch-epr-fhir/StructureDefinition/CH.mCSD.Organization"
* rest.resource[=].interaction[+].code = #create
* rest.resource[=].interaction[+].code = #update
* rest.resource[=].interaction[+].code = #delete
* rest.resource[=].versioning = #no-version

* rest.resource[+].type = #Practitioner
* rest.resource[=].profile = "http://fhir.ch/ig/ch-epr-fhir/StructureDefinition/CH.mCSD.Practitioner"
* rest.resource[=].interaction[+].code = #create
* rest.resource[=].interaction[+].code = #update
* rest.resource[=].interaction[+].code = #delete
* rest.resource[=].versioning = #no-version

* rest.resource[+].type = #PractitionerRole
* rest.resource[=].profile = "http://fhir.ch/ig/ch-epr-fhir/StructureDefinition/CH.mCSD.PractitionerRole"
* rest.resource[=].interaction[+].code = #create
* rest.resource[=].interaction[+].code = #update
* rest.resource[=].interaction[+].code = #delete
* rest.resource[=].versioning = #no-version


// Client Actor for CH:mCSD-1
Instance: CH.mCSD.CareServicesSource
InstanceOf: CapabilityStatement
Usage: #definition
* url = "http://fhir.ch/ig/ch-epr-fhir/CapabilityStatement/CH.mCSD.CareServicesSource"
* name = "CH_mCSD_Care_Services_Source"
* title = "mCSD Care Services Source (client)"
* status = #active
* experimental = false
* date = "2024-08-13"
* description = "CapabilityStatement for Server Actor in the Swiss mCSD profile extension."
* kind = #requirements
* fhirVersion = #4.0.1
* format[0] = #application/fhir+xml
* format[+] = #application/fhir+json
* rest.mode = #client
* rest.documentation = "CH:mCSD-1 endpoint"
* rest.interaction[+].code = #batch

* rest.resource[+].type = #Organization
* rest.resource[=].profile[+] = "http://fhir.ch/ig/ch-epr-fhir/StructureDefinition/CH.mCSD.Organization"
* rest.resource[=].interaction[+].code = #create
* rest.resource[=].interaction[+].code = #update
* rest.resource[=].interaction[+].code = #delete
* rest.resource[=].versioning = #no-version

* rest.resource[+].type = #Practitioner
* rest.resource[=].profile = "http://fhir.ch/ig/ch-epr-fhir/StructureDefinition/CH.mCSD.Practitioner"
* rest.resource[=].interaction[+].code = #create
* rest.resource[=].interaction[+].code = #update
* rest.resource[=].interaction[+].code = #delete
* rest.resource[=].versioning = #no-version

* rest.resource[+].type = #PractitionerRole
* rest.resource[=].profile = "http://fhir.ch/ig/ch-epr-fhir/StructureDefinition/CH.mCSD.PractitionerRole"
* rest.resource[=].interaction[+].code = #create
* rest.resource[=].interaction[+].code = #update
* rest.resource[=].interaction[+].code = #delete
* rest.resource[=].versioning = #no-version
24 changes: 24 additions & 0 deletions input/images-source/mCSD_ActorDiagram_CH-1.plantuml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
@startuml
hide footbox

title Interaction Diagram for [CH:mCSD-1]

participant "Care Services Source" as Client
participant "Care Services Directory" as Server

hide footbox
autoactivate on

== Add ==
Client -> Server : Add Care Service Request
Server --> Client : Add Care Services Response

== Update ==
Client -> Server : Update Care Service Request
Server --> Client : Update Care Services Response

== Delete ==
Client -> Server : Delete Care Service Request
Server --> Client : Delete Care Services Response

@enduml
5 changes: 5 additions & 0 deletions input/images-source/mCSD_actor_diagram.plantuml
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,10 @@
title mCSD Actor Diagram
agent "Care Services Selective Supplier" as SelectiveSupplier
agent "Care Services Selective Consumer" as SelectiveConsumer
agent "Care Services Source" as Source
agent "Care Services Directory" as Directory

SelectiveConsumer -down-> SelectiveSupplier : "[[iti-90.html ITI-90 Find Matching Care Services]]"
Source -down-> Directory : "[[ch-mcsd-1.html CH:mCSD-1 Care Services Feed]]"

@enduml
3 changes: 3 additions & 0 deletions input/images-source/overview.plantuml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ component "EPR App" {
[RESTful ATNA Secure Node] as ATNANode

[Care Services Selective Consumer] as mCSDSelectiveConsumer
[Care Services Source] as mCSDSelectiveSource

[Policy Source] as PPQmPolicySource
[Policy Consumer] as PPQmPolicyConsumer
Expand Down Expand Up @@ -50,6 +51,8 @@ component "EPR API" {

[Care Services Selective Supplier] as mCSDSelectiveSupplier
mCSDSelectiveConsumer --> mCSDSelectiveSupplier : Find Matching Care Services [ITI-90]
[Care Services Directory] as mCSDSelectiveDirectory
mCSDSelectiveSource --> mCSDSelectiveDirectory : Care Services Feed [CH:mCSD-1]

[Policy Repository] as PPQmPolicyRepository
PPQmPolicySource --> PPQmPolicyRepository : Mobile Privacy Policy Feed [PPQ-3],\nMobile Privacy Policy Bundle Feed [PPQ-4]
Expand Down
3 changes: 3 additions & 0 deletions input/includes/menu.xml
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,9 @@
<li>
<a href="iti-90.html">Find Matching Care Services [ITI-90]</a>
</li>
<li>
<a href="ch-mcsd-1.html">Care Services Feed [CH:mCSD-1]</a>
</li>
<li>
<a href="ppq-3.html">Mobile Privacy Policy Feed [PPQ-3]</a>
</li>
Expand Down
8 changes: 8 additions & 0 deletions input/pagecontent/capstatements.xml
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,10 @@
<a href="CapabilityStatement-CH.mCSD.CareServicesSelectiveConsumer.html">mCSD Care Services Selective Consumer (client)</a>
<p>CapabilityStatement for Actor mCSD Care Services Selective Consumer (client).</p>
</li>
<li>
<a href="CapabilityStatement-CH.mCSD.CareServicesSource.html">mCSD Care Services Source (client)</a>
<p>CapabilityStatement for Actor mCSD Care Services Source (client).</p>
</li>
<li>
<a href="CapabilityStatement-CH.PPQm.PolicySourceConsumer.html">CH:PPQm Policy Source and Consumer (client)</a>
<p>CapabilityStatement for the Policy Source and Policy Consumer actors in the CH:PPQm profile (client).</p>
Expand Down Expand Up @@ -70,6 +74,10 @@
<a href="CapabilityStatement-CH.mCSD.CareServicesSelectiveSupplier.html">mCSD Care Services Selective Supplier (server)</a>
<p>CapabilityStatement for Actor mCSD Care Services Selective Supplier (server).</p>
</li>
<li>
<a href="CapabilityStatement-CH.mCSD.CareServicesDirectory.html">mCSD Care Services Directory (server)</a>
<p>CapabilityStatement for Actor mCSD Care Services Directory (server).</p>
</li>
<li>
<a href="CapabilityStatement-CH.mCSD.CareServicesSelectiveSupplier.html">CH:PPQm Policy Repository (server)</a>
<p>CapabilityStatement for the Policy Repository actor in the CH:PPQm profile (server).</p>
Expand Down
Loading

0 comments on commit 63fa27c

Please sign in to comment.