Closed ppazos closed 6 years ago
For compo queries we'll have
{
"results": {
"11111111-1111-1111-1111-111111111111": [
{
"uid": "c18f5154-5ec5-4657-bb81-311b8ca031f2",
"category": "event",
"startTime": "2018-04-27 05:28:27",
"subjectId": "11111111-1111-1111-1111-111111111111",
"ehrUid": "11111111-1111-1111-1111-111111111111",
"templateId": "test_all_datatypes.es.v1",
"archetypeId": "openEHR-EHR-COMPOSITION.test_all_datatypes.v1",
"lastVersion": true,
"organizationUid": "e9d13294-bce7-44e7-9635-8e906da0c914",
"parent": "687f09ca-85ab-4dc4-9721-22c67bccbd85::my.emr::1"
},
{
"uid": "3ed2b0c5-75b8-4894-96b4-d6337bb58b97",
"category": "event",
"startTime": "2018-04-27 05:28:28",
"subjectId": "11111111-1111-1111-1111-111111111111",
"ehrUid": "11111111-1111-1111-1111-111111111111",
"templateId": "test_all_datatypes.es.v1",
"archetypeId": "openEHR-EHR-COMPOSITION.test_all_datatypes.v1",
"lastVersion": true,
"organizationUid": "e9d13294-bce7-44e7-9635-8e906da0c914",
"parent": "9e33acd9-c7d0-4972-94ad-116cfa11490d::my.emr::1"
}
]
},
"pagination": {
"max": 20,
"offset": 0,
"nextOffset": 20,
"prevOffset": 0
},
"timing": "4 ms"
}
and
<paginatedResults>
<results>
<entry key="11111111-1111-1111-1111-111111111111">
<compositionIndex>
<uid>c18f5154-5ec5-4657-bb81-311b8ca031f2</uid>
<category>event</category>
<startTime>2018-04-27 05:28:27</startTime>
<subjectId>11111111-1111-1111-1111-111111111111</subjectId>
<ehrUid>11111111-1111-1111-1111-111111111111</ehrUid>
<templateId>test_all_datatypes.es.v1</templateId>
<archetypeId>openEHR-EHR-COMPOSITION.test_all_datatypes.v1</archetypeId>
<lastVersion>true</lastVersion>
<organizationUid>e9d13294-bce7-44e7-9635-8e906da0c914</organizationUid>
<parent>687f09ca-85ab-4dc4-9721-22c67bccbd85::my.emr::1</parent>
</compositionIndex>
<compositionIndex>
<uid>3ed2b0c5-75b8-4894-96b4-d6337bb58b97</uid>
<category>event</category>
<startTime>2018-04-27 05:28:28</startTime>
<subjectId>11111111-1111-1111-1111-111111111111</subjectId>
<ehrUid>11111111-1111-1111-1111-111111111111</ehrUid>
<templateId>test_all_datatypes.es.v1</templateId>
<archetypeId>openEHR-EHR-COMPOSITION.test_all_datatypes.v1</archetypeId>
<lastVersion>true</lastVersion>
<organizationUid>e9d13294-bce7-44e7-9635-8e906da0c914</organizationUid>
<parent>9e33acd9-c7d0-4972-94ad-116cfa11490d::my.emr::1</parent>
</compositionIndex>
</entry>
</results>
<pagination>
<max>20</max>
<offset>0</offset>
<nextOffset>20</nextOffset>
<prevOffset>0</prevOffset>
</pagination>
</paginatedResults>
For data queries we'll have (group=path, JSON)
{
"11111111-1111-1111-1111-111111111111": {
"openEHR-EHR-OBSERVATION.test_all_datatypes.v1/data[at0001]/events[at0002]/data[at0003]/items[at0011]/value<DV_COUNT>": {
"type": "DV_COUNT",
"name": {
"es": "Count"
},
"serie": [
{
"magnitude": 3,
"date": "2018-04-27 05:28:27"
},
{
"magnitude": 3,
"date": "2018-04-27 05:28:28"
}
]
}
}
}
group=compo, JSON
[
{
"openEHR-EHR-OBSERVATION.test_all_datatypes.v1/data[at0001]/events[at0002]/data[at0003]/items[at0011]/value<DV_COUNT>": {
"type": "DV_COUNT",
"name": {
"es": "Count"
},
"attrs": [
"magnitude"
]
}
},
{
"11111111-1111-1111-1111-111111111111": {
"c18f5154-5ec5-4657-bb81-311b8ca031f2": {
"date": "2018-04-27 05:28:27",
"cols": [
{
"type": "DV_COUNT",
"path": "openEHR-EHR-COMPOSITION.test_all_datatypes.v1/data[at0001]/events[at0002]/data[at0003]/items[at0011]/value<DV_COUNT>",
"values": [
{
"magnitude": 3
}
]
}
]
},
"3ed2b0c5-75b8-4894-96b4-d6337bb58b97": {
"date": "2018-04-27 05:28:28",
"cols": [
{
"type": "DV_COUNT",
"path": "openEHR-EHR-COMPOSITION.test_all_datatypes.v1/data[at0001]/events[at0002]/data[at0003]/items[at0011]/value<DV_COUNT>",
"values": [
{
"magnitude": 3
}
]
}
]
}
}
}
]
group=compo, XML
<list>
<map>
<entry key="openEHR-EHR-OBSERVATION.test_all_datatypes.v1/data[at0001]/events[at0002]/data[at0003]/items[at0011]/value<DV_COUNT>">
<entry key="type">DV_COUNT</entry>
<entry key="name">
<entry key="es">Count</entry>
</entry>
<entry key="attrs">
<string>magnitude</string>
</entry>
</entry>
</map>
<map>
<entry key="11111111-1111-1111-1111-111111111111">
<entry key="c18f5154-5ec5-4657-bb81-311b8ca031f2">
<entry key="date">2018-04-27 05:28:27</entry>
<entry key="cols">
<map>
<entry key="type">DV_COUNT</entry>
<entry key="path">openEHR-EHR-COMPOSITION.test_all_datatypes.v1/data[at0001]/events[at0002]/data[at0003]/items[at0011]/value<DV_COUNT></entry>
<entry key="values">
<map>
<entry key="magnitude">3</entry>
</map>
</entry>
</map>
</entry>
</entry>
<entry key="3ed2b0c5-75b8-4894-96b4-d6337bb58b97">
<entry key="date">2018-04-27 05:28:28</entry>
<entry key="cols">
<map>
<entry key="type">DV_COUNT</entry>
<entry key="path">openEHR-EHR-COMPOSITION.test_all_datatypes.v1/data[at0001]/events[at0002]/data[at0003]/items[at0011]/value<DV_COUNT></entry>
<entry key="values">
<map>
<entry key="magnitude">3</entry>
</map>
</entry>
</map>
</entry>
</entry>
</entry>
</map>
</list>
group=path, XML
<map>
<entry key="11111111-1111-1111-1111-111111111111">
<entry key="openEHR-EHR-OBSERVATION.test_all_datatypes.v1/data[at0001]/events[at0002]/data[at0003]/items[at0011]/value<DV_COUNT>">
<entry key="type">DV_COUNT</entry>
<entry key="name">
<entry key="es">Count</entry>
</entry>
<entry key="serie">
<map>
<entry key="magnitude">3</entry>
<entry key="date">2018-04-27 05:28:27</entry>
</map>
<map>
<entry key="magnitude">3</entry>
<entry key="date">2018-04-27 05:28:28</entry>
</map>
</entry>
</entry>
</entry>
</map>
Now when queries are executed for an EHR, just on result is returned, but when queries are executed for all the EHRs, results are grouped by EHR UID.
Making the EHR query result the same as the multiple EHR query result will simplify the schema definition for the API and client apps don't need to manage both cases.