-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy path454.bundle.d5c78c21a741097ce80e.js.map
1 lines (1 loc) · 82.9 KB
/
454.bundle.d5c78c21a741097ce80e.js.map
1
{"version":3,"file":"454.bundle.d5c78c21a741097ce80e.js","mappings":"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","sources":["webpack:///../../../../../fhir-integration/src/fhircast/fhircastTestData.js","webpack:///../../../../../fhir-integration/src/fhircast/FhircastPanel.tsx","webpack:///../../../../../fhir-integration/src/fhircast/PowercastPanel.tsx","webpack:///../../../../../fhir-integration/src/fhircast/powercast.js","webpack:///../../../../../fhir-integration/src/fhircast/getCustomizationModule.tsx","webpack:///../../../../../fhir-integration/src/services/FhircastService.ts","webpack:///../../../../../fhir-integration/src/index.tsx","webpack:///../../../../../fhir-integration/src/fhircast/getPanelModule.tsx"],"sourcesContent":["const testData= [\n\n\n {\n label: \"ImagingStudy-open\",\n value: \"ImagingStudy-open\",\n eventObject: {\n \"timestamp\": \"2018-01-08T01:37:05.14\",\n \"id\": \"q9v3jubddqt63n1\",\n \"event\": {\n \"hub.topic\": \"fdb2f928-5546-4f52-87a0-0648e9ded065\",\n \"hub.event\": \"imagingstudy-open\",\n \"context\": [\n {\n \"key\": \"patient\",\n \"resource\": {\n \"resourceType\": \"Patient\",\n \"id\": \"ewUbXT9RWEbSj5wPEdgRaBw3\",\n \"identifier\": [\n {\n \"system\": \"urn:oid:1.2.840.114350\",\n \"value\": \"185444\"\n },\n {\n \"system\": \"urn:oid:1.2.840.114350.1.13.861.1.7.5.737384.27000\",\n \"value\": \"2667\"\n }\n ]\n }\n },\n {\n \"key\": \"study\",\n \"resource\": {\n \"resourceType\": \"ImagingStudy\",\n \"id\": \"8i7tbu6fby5ftfbku6fniuf\",\n \"uid\": \"urn:oid:2.16.840.1.114362.1.11972228.22789312658.616067305.306.2\",\n \"identifier\": [\n {\n \"system\": \"7678\",\n \"value\": \"185444\"\n }\n ],\n \"patient\": {\n \"reference\": \"Patient/ewUbXT9RWEbSj5wPEdgRaBw3\"\n }\n }\n }\n ]\n }\n }\n},\n\n{\n label: \"ImagingStudy-close\",\n value: \"ImagingStudy-close\",\n eventObject: {\n \"timestamp\": \"2018-01-08T01:37:05.14\",\n \"id\": \"q9v3jubddqt63n1\",\n \"event\": {\n \"hub.topic\": \"fdb2f928-5546-4f52-87a0-0648e9ded065\",\n \"hub.event\": \"imagingstudy-close\",\n \"context\": [\n {\n \"key\": \"patient\",\n \"resource\": {\n \"resourceType\": \"Patient\",\n \"id\": \"ewUbXT9RWEbSj5wPEdgRaBw3\",\n \"identifier\": [\n {\n \"system\": \"urn:oid:1.2.840.114350\",\n \"value\": \"185444\"\n },\n {\n \"system\": \"urn:oid:1.2.840.114350.1.13.861.1.7.5.737384.27000\",\n \"value\": \"2667\"\n }\n ]\n }\n },\n {\n \"key\": \"study\",\n \"resource\": {\n \"resourceType\": \"ImagingStudy\",\n \"id\": \"8i7tbu6fby5ftfbku6fniuf\",\n \"uid\": \"urn:oid:2.16.840.1.114362.1.11972228.22789312658.616067305.306.2\",\n \"identifier\": [\n {\n \"system\": \"7678\",\n \"value\": \"185444\"\n }\n ],\n \"patient\": {\n \"reference\": \"Patient/ewUbXT9RWEbSj5wPEdgRaBw3\"\n }\n }\n }\n ]\n }\n}\n},\n{\n label: \"Patient-open\",\n value: \"Patient-open\",\n eventObject: {\"timestamp\":\"\",\n \"id\":\"\",\n \"event\":{\n \"hub.topic\":\"b073c35e-d86e-4ae0-a8b7-e8804dc50fd1\",\n \"hub.event\":\"patient-open\",\n \"context\":[{ \n \"key\":\"patient\",\n \"resource\":{\n \"resourceType\":\"Patient\",\n \"id\":\"645d87b8-4710-4837-97f4-aeecf3566ac8\",\n \"identifier\":[{\n \"type\":{\n \"coding\":[{\n \"system\":\"http://terminology.hl7.org/CodeSystem/v2-0203\",\n \"code\":\"MR\",\"display\":\"Medical Record Number\"}]\n },\n \"value\":\"M1\"\n }]\n }}]}}\n},\n{\n label: \"Patient-close\",\n value: \"Patient-close\",\n eventObject: {\"timestamp\":\"\",\n \"id\":\"\",\n \"event\":{\n \"hub.topic\":\"b073c35e-d86e-4ae0-a8b7-e8804dc50fd1\",\n \"hub.event\":\"patient-close\",\n \"context\":[{ \n \"key\":\"patient\",\n \"resource\":{\n \"resourceType\":\"Patient\",\n \"id\":\"645d87b8-4710-4837-97f4-aeecf3566ac8\",\n \"identifier\":[{\n \"type\":{\n \"coding\":[{\n \"system\":\"http://terminology.hl7.org/CodeSystem/v2-0203\",\n \"code\":\"MR\",\"display\":\"Medical Record Number\"}]}}]}}]}}\n},\n\n {\n label: \"[RAD-148] DiagnoticReport-open\",\n value: \"[RAD-148] DiagnoticReport-open\",\n eventObject: {\n \"timestamp\": \"\",\n \"id\": \"\",\n \"event\": {\n \"hub.topic\": \"\",\n \"hub.event\": \"diagnosticreport-open\",\n \"context\": [\n {\n \"key\": \"report\",\n \"resource\": {\n \"resourceType\": \"DiagnosticReport\",\n \"id\": \"2402d3bd-e988-414b-b7f2-4322e86c9327\",\n \"status\": \"unknown\",\n \"basedOn\" : [\n {\n \"type\" : \"ServiceRequest\",\n \"identifier\" : {\n \"type\" : {\n \"coding\" : [\n {\n \"system\" : \"http://terminology.hl7.org/CodeSystem/v2-0203\",\n \"code\" : \"ACSN\"\n }\n ]\n },\n \"system\" : \"urn:oid:2.16.840.1.113883.19.5\",\n \"value\" : \"GH339884\",\n \"assigner\" : {\n \"reference\" : \"Organization/a92ac1be-fb34-49c1-be58-10928bd271cc\",\n \"display\" : \"My Healthcare Provider\"\n }\n }\n }\n ],\n \"code\" : {\n \"coding\" : [\n {\n \"system\" : \"http://loinc.org\",\n \"code\" : \"19005-8\",\n \"display\": \"Radiology Imaging study [Impression] (narrative)\"\n }\n ]\n },\n \"subject\": {\n \"reference\": \"Patient/503824b8-fe8c-4227-b061-7181ba6c3926\"\n },\n \"study\": [\n {\n \"reference\": \"ImagingStudy/e25c1d31-20a2-41f8-8d85-fe2fdeac74fd\"\n }\n ]\n }\n },\n {\n \"key\": \"study\",\n \"resource\": {\n \"resourceType\": \"ImagingStudy\",\n \"id\": \"e25c1d31-20a2-41f8-8d85-fe2fdeac74fd\",\n \"identifier\": [\n {\n \"system\" : \"urn:dicom:uid\",\n \"value\" : \"urn:oid:2.16.840.1.114362.1.11972228.22789312658.616067305.306.2\"\n }\n ],\n \"status\": \"unknown\",\n \"subject\": {\n \"reference\": \"Patient/503824b8-fe8c-4227-b061-7181ba6c3926\"\n },\n \"basedOn\" : [\n {\n \"type\" : \"ServiceRequest\",\n \"identifier\" : {\n \"type\" : {\n \"coding\" : [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/v2-0203\",\n \"code\" : \"ACSN\"\n }\n ]\n },\n \"system\" : \"urn:oid:2.16.840.1.113883.19.5\",\n \"value\" : \"GH339884\",\n \"assigner\" : {\n \"reference\" : \"Organization/a92ac1be-fb34-49c1-be58-10928bd271cc\",\n \"display\" : \"My Healthcare Provider\"\n }\n }\n }\n ]\n }\n },\n {\n \"key\": \"patient\",\n \"resource\": {\n \"resourceType\": \"Patient\",\n \"id\": \"503824b8-fe8c-4227-b061-7181ba6c3926\",\n \"identifier\" : [\n {\n \"use\" : \"official\",\n \"type\" : {\n \"coding\" : [\n {\n \"system\" : \"http://terminology.hl7.org/CodeSystem/v2-0203\",\n \"code\" : \"MR\"\n }\n ]\n },\n \"system\": \"urn:oid:2.16.840.1.113883.19.5\",\n \"value\": \"4438001\",\n \"assigner\": {\n \"reference\": \"Organization/a92ac1be-fb34-49c1-be58-10928bd271cc\",\n \"display\": \"My Healthcare Provider\"\n }\n }\n ],\n \"name\" : [\n {\n \"use\" : \"official\",\n \"family\" : \"Smith\",\n \"given\" : [\n \"John\"\n ],\n \"prefix\" : [\n \"Dr.\"\n ],\n \"suffix\" : [\n \"Jr.\",\n \"M.D.\"\n ]\n }\n ],\n \"gender\" : \"male\",\n \"birthDate\" : \"1978-11-03\"\n }\n }\n ]\n }\n }\n },\n {\n label: \"[RAD-149] DiagnoticReport-close\",\n value: \"[RAD-149] DiagnoticReport-close\",\n eventObject: \n {\n \"timestamp\": \"\",\n \"id\": \"\",\n \"event\": {\n \"hub.topic\": \"\",\n \"hub.event\": \"diagnosticreport-close\",\n \"context\": [\n {\n \"key\": \"report\",\n \"resource\": {\n \"resourceType\": \"DiagnosticReport\",\n \"id\": \"2402d3bd-e988-414b-b7f2-4322e86c9327\",\n \"identifier\" : [\n {\n \"use\" : \"official\",\n \"system\" : \"http://myhealthcare.com/reporting-system\",\n \"value\" : \"GH339884.RPT.0001\"\n }\n ],\n \"status\": \"unknown\",\n \"basedOn\" : [\n {\n \"type\" : \"ServiceRequest\",\n \"identifier\" : {\n \"type\" : {\n \"coding\" : [\n {\n \"system\" : \"http://terminology.hl7.org/CodeSystem/v2-0203\",\n \"code\" : \"ACSN\"\n }\n ]\n },\n \"system\" : \"urn:oid:2.16.840.1.113883.19.5\",\n \"value\" : \"GH339884\",\n \"assigner\" : {\n \"reference\" : \"Organization/a92ac1be-fb34-49c1-be58-10928bd271cc\",\n \"display\" : \"My Healthcare Provider\"\n }\n }\n }\n ],\n \"code\" : {\n \"coding\" : [\n {\n \"system\" : \"http://loinc.org\",\n \"code\" : \"19005-8\",\n \"display\": \"Radiology Imaging study [Impression] (narrative)\"\n }\n ]\n },\n \"subject\": {\n \"reference\": \"Patient/503824b8-fe8c-4227-b061-7181ba6c3926\"\n },\n \"imagingStudy\": [\n {\n \"reference\": \"ImagingStudy/e25c1d31-20a2-41f8-8d85-fe2fdeac74fd\"\n }\n ]\n }\n },\n {\n \"key\": \"study\",\n \"resource\": {\n \"resourceType\": \"ImagingStudy\",\n \"id\": \"e25c1d31-20a2-41f8-8d85-fe2fdeac74fd\",\n \"identifier\": [\n {\n \"system\" : \"urn:dicom:uid\",\n \"value\" : \"urn:oid:1.2.840.83474.8.231.875.3.15.661594731\"\n }\n ],\n \"status\": \"unknown\",\n \"subject\": {\n \"reference\": \"Patient/503824b8-fe8c-4227-b061-7181ba6c3926\"\n },\n \"basedOn\" : [\n {\n \"type\" : \"ServiceRequest\",\n \"identifier\" : {\n \"type\" : {\n \"coding\" : [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/v2-0203\",\n \"code\" : \"ACSN\"\n }\n ]\n },\n \"system\" : \"urn:oid:2.16.840.1.113883.19.5\",\n \"value\" : \"GH339884\",\n \"assigner\" : {\n \"reference\" : \"Organization/a92ac1be-fb34-49c1-be58-10928bd271cc\",\n \"display\" : \"My Healthcare Provider\"\n }\n }\n }\n ]\n }\n },\n {\n \"key\": \"patient\",\n \"resource\": {\n \"resourceType\": \"Patient\",\n \"id\": \"503824b8-fe8c-4227-b061-7181ba6c3926\",\n \"identifier\" : [\n {\n \"use\" : \"official\",\n \"type\" : {\n \"coding\" : [\n {\n \"system\" : \"http://terminology.hl7.org/CodeSystem/v2-0203\",\n \"code\" : \"MR\"\n }\n ]\n },\n \"system\": \"urn:oid:2.16.840.1.113883.19.5\",\n \"value\": \"4438001\",\n \"assigner\": {\n \"reference\": \"Organization/a92ac1be-fb34-49c1-be58-10928bd271cc\",\n \"display\": \"My Healthcare Provider\"\n }\n }\n ]\n }\n }\n ]\n }\n }\n },\n {\n label: \"[RAD-150] DiagnoticReport-update\",\n value: \"[RAD-150] DiagnoticReport-update\",\n eventObject: \n {\n \"timestamp\": \"\",\n \"id\": \"\",\n \"event\": {\n \"hub.topic\": \"\",\n \"hub.event\": \"DiagnosticReport-update\",\n \"context.versionId\": \"\",\n \"context\": [\n {\n \"key\": \"report\",\n \"resource\": {\n \"resourceType\": \"DiagnosticReport\",\n \"id\": \"2402d3bd-e988-414b-b7f2-4322e86c9327\",\n \"status\": \"unknown\",\n \"code\" : {\n \"coding\" : [\n {\n \"system\" : \"http://loinc.org\",\n \"code\" : \"19005-8\",\n \"display\": \"Radiology Imaging study [Impression] (narrative)\"\n }\n ]\n }\n }\n },\n {\n \"key\": \"updates\",\n \"resource\": {\n \"resourceType\": \"Bundle\",\n \"type\": \"transaction\",\n \"entry\": [\n {\n \"request\": {\n \"method\": \"PUT\"\n },\n \"resource\": {\n \"resourceType\": \"ImagingStudy\",\n \"description\": \"CHEST XRAY\",\n \"started\": \"2010-02-14T01:10:00.000Z\",\n \"id\": \"7e9deb91-0017-4690-aebd-951cef34aba4\",\n \"identifier\": [\n {\n \"type\": {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/v2-0203\",\n \"code\": \"ACSN\"\n }\n ]\n },\n \"value\": \"3478116342\"\n },\n {\n \"system\": \"urn:dicom:uid\",\n \"value\": \"urn:oid:2.16.124.113543.6003.1154777499.30276.83661.3632298176\"\n }\n ]\n }\n },\n {\n \"request\": {\n \"method\": \"PUT\"\n },\n \"resource\": {\n \"resourceType\": \"Observation\",\n \"id\": \"40afe766-3628-4ded-b5bd-925727c013b3\",\n \"partOf\": {\n \"reference\": \"ImagingStudy/7e9deb91-0017-4690-aebd-951cef34aba4\"\n },\n \"status\": \"preliminary\",\n \"category\": {\n \"system\": \"http://terminology.hl7.org/CodeSystem/observation-category\",\n \"code\": \"imaging\",\n \"display\": \"Imaging\"\n },\n \"code\": {\n \"coding\": [\n {\n \"system\": \"http://www.radlex.org\",\n \"code\": \"RID49690\",\n \"display\": \"simple cyst\"\n }\n ] \n },\n \"issued\": \"2020-09-07T15:02:03.651Z\"\n }\n }\n ]\n }\n }\n ]\n }\n }\n },\n {\n label: \"[RAD-151] DiagnoticReport-select\",\n value: \"[RAD-151] DiagnoticReport-select\",\n eventObject: \n {\n \"timestamp\": \"\",\n \"id\": \"\",\n \"event\": {\n \"hub.topic\": \"\",\n \"hub.event\": \"DiagnosticReport-select\",\n \"context\": [\n {\n \"key\": \"report\",\n \"resource\": {\n \"resourceType\": \"DiagnosticReport\",\n \"id\": \"2402d3bd-e988-414b-b7f2-4322e86c9327\",\n \"status\": \"unknown\",\n \"code\" : {\n \"coding\" : [\n {\n \"system\" : \"http://loinc.org\",\n \"code\" : \"19005-8\",\n \"display\": \"Radiology Imaging study [Impression] (narrative)\"\n }\n ]\n }\n }\n },\n {\n \"key\": \"select\",\n \"resources\": [\n {\n \"resourceType\": \"Observation\",\n \"id\": \"40afe766-3628-4ded-b5bd-925727c013b3\"\n }\n ]\n }\n ]\n }\n }\n },\n {\n label: \"[RAD-156] sync-error\",\n value: \"[RAD-156] sync-error\",\n eventObject:\n {\n \"timestamp\": \"\",\n \"id\": \"\",\n \"event\": {\n \"hub.topic\": \"\",\n \"hub.event\": \"syncerror\",\n \"context\": [\n {\n \"key\": \"operationoutcome\",\n \"resource\": {\n \"resourceType\": \"OperationOutcome\",\n \"issue\": [\n {\n \"severity\": \"warning\",\n \"code\": \"processing\",\n \"diagnostics\": \"Acme Product failed to follow context\",\n \"details\": {\n \"coding\": [\n {\n \"system\": \"https://fhircast.hl7.org/events/syncerror/eventid\",\n \"code\": \"fdb2f928-5546-4f52-87a0-0648e9ded065\"\n },\n {\n \"system\": \"https://fhircast.hl7.org/events/syncerror/eventname\",\n \"code\": \"Patient-open\"\n },\n {\n \"system\": \"https://fhircast.hl7.org/events/syncerror/subscriber\",\n \"code\": \"Acme Product\"\n },\n {\n \"system\": \"http://example.com/events/syncerror/your-error-code-system\",\n \"code\": \"FHIRcast sync error\"\n }\n ]\n }\n }\n ]\n }\n }\n ]\n }\n }\n },\n \n\n ];\n \n export default testData;","import React, { useState, useEffect } from 'react';\nimport { ServicesManager, CommandsManager} from '@ohif/core';\nimport { Button, ButtonEnums,Label,Select,InputText,Checkbox } from '@ohif/ui'\nimport testData from './fhircastTestData'\nimport { useAppConfig } from '@state';\n\nfunction FhircastPanel({\n servicesManager,\n commandsManager,\n extensionManager,\n}): React.FunctionComponent { \n \n\n const {FhircastService}=servicesManager.services;\n const [hubConnected, sethubConnected] = useState(false); \n const [tokenAcquired, setTokenAcquired] = useState(false);\n const [topic,setTopic]=useState('FHIRcast conference');\n const [publishEvent,setPublishEvent]=useState({label:'ImagingStudy-open',value: 'ImagingStudy-open'});\n const [selectedHub,setSelectedHub]=useState({value:'TEST',label:'TEST-FHIRcast Javascript Sandbox'}); \n\n const [overwriteDataCheckbox,setOverwriteDataCheckbox]=useState(false);\n const [patientOpenCheckbox,setPatientOpenCheckbox]=useState(true);\n const [patientCloseCheckbox,setPatientCloseCheckbox]=useState(true);\n const [imagingStudyOpenCheckbox,setImagingStudyOpenCheckbox]=useState(true);\n const [imagingStudyCloseCheckbox,setImagingStudyCloseCheckbox]=useState(true);\n const [diagnosticReportOpenCheckbox,setDiagnosticReportOpenCheckbox]=useState(true);\n const [diagnosticReportCloseCheckbox,setDiagnosticReportCloseCheckbox]=useState(true);\n\n const [sendIMOpen,setSendIMOpen]=useState(true);\n const [sendIMClose,setSendIMClose]=useState(true);\n\n const [appConfig] =useAppConfig();\n \n let hub={\n name:'',\n friendlyName:'',\n productName :'',\n enabled:false,\n events: [],\n lease:999,\n hub_endpoint: '',\n authorization_endpoint: '',\n token_endpoint: '',\n token:'',\n subscribed:false,\n subscriberName:''\n };\n\n\n function getHubOptions(){ // used to fill the hub select drop down\n var options=[];\n if (appConfig.fhircast.hubs) {\n appConfig.fhircast.hubs.forEach(hub =>\n {\n if (hub.enabled) {\n options.push({label:hub.name+'-'+hub.friendlyName,value:hub.name});\n }\n })\n }\n return options;\n }\n\n \n const getTokenClick= async() => {\n console.debug('FhircastPanel: Getting token from the hub: ' + FhircastService.getHub().name); \n var succeeded= await FhircastService.getToken();\n if (succeeded) {\n setTokenAcquired(true);\n if (FhircastService.getHub.subscribed) {sethubConnected(true);}\n }\n }\n\n useEffect(() => {\n hub=FhircastService.getHub();\n if (hub.subscribed) {sethubConnected(true); }\n if (hub.token != '') {setTokenAcquired(true); }\n setSelectedHub({label: hub.name,value:hub.friendlyName });\n // ~~ Subscription\n const fhircastEvent = FhircastService.EVENTS.FHIRCAST_MESSAGE;\n const hubSubscribed= FhircastService.EVENTS.HUB_SUBSCRIBED;\n const hubUnsubscribed= FhircastService.EVENTS.HUB_UNSUBSCRIBED;\n const websocketClose = FhircastService.EVENTS.WEBSOCKET_CLOSE;\n const subscriptions = [];\n\n [fhircastEvent, hubSubscribed, hubUnsubscribed,websocketClose,].forEach(evt => {\n const { unsubscribe } = FhircastService.subscribe(evt, () => { \n if ( evt==='tokenAcquired' ) {\n setTokenAcquired(true);\n console.debug('FhircastPanel: tokenAcquired event received.');\n }\n if (evt==='hubSubscribed') {\n sethubConnected(true);\n console.debug('FhircastPanel: hubSubscribed event received.');\n }\n if (evt==='hubUnsubscribed' ) {\n sethubConnected(false);\n console.debug('FhircastPanel: hubUnsubscribed event received.');\n }\n if ( evt==='websocketClose' ) {\n sethubConnected(false);\n console.debug('FhircastPanel: websocketClose event received.');\n }\n if (evt==='fhircastMessage') {\n console.debug('FhircastPanel: fhircastMessage event received.');\n }\n });\n subscriptions.push(unsubscribe);\n });\n return () => {\n subscriptions.forEach(unsub => {\n unsub();\n });\n };\n },[]);\n\n const subscribeClick= async() => {\n console.debug('FhircastPanel: Subscribing to the hub.');\n if (FhircastService.getTopic() === undefined) {\n FhircastService.setTopic(topic);\n }\n var response= await FhircastService.fhircastSubscribe();\n if (response==202) {\n sethubConnected(true);\n }\n }\n\n const unsubscribeClick= async() => {\n console.debug('FhircastPanel: Unsubscribing from the hub.');\n var response= await FhircastService.fhircastUnsubscribe();\n if (response==202) {\n sethubConnected(false);\n } else {\n sethubConnected(false);\n }\n }\n\n const publishClick= async() => {\n try {\n console.debug('FhircastPanel: calling publish');\n var eventObj=testData.filter(e=>e.label===publishEvent.label);\n if (overwriteDataCheckbox && eventObj[0].eventObject.event['hub.event'].toLowerCase()==='imagingstudy-open') {\n console.debug('FhircastPanel: Publishing ImagingStudy event from current active display port.');\n const { viewportGridService, displaySetService, cornerstoneViewportService } = servicesManager.services;\n const displaySets = displaySetService.getActiveDisplaySets();\n const displaySet = displaySets[0];\n const instance = displaySet?.instances?.[0] || displaySet?.instance;\n if (instance) {\n console.debug('FhircastPanel: Publishing ImagingStudy '+ instance.StudyInstanceUID);\n eventObj[0].eventObject.event.context[1].resource.uid='urn:oid:'+instance.StudyInstanceUID;\n }\n }\n var response=await FhircastService.fhircastPublish(eventObj[0].eventObject,); \n console.debug('FhircastPanel: publish response: ',response.statusText);\n }\n catch (err) {\n console.warn('FhircastPanel: publish error: ',err.message);\n }\n }\n\n\n const getContextClick= async() => {\n console.debug('FhircastPanel: Fetching current context from the hub.');\n try {\n var response=await FhircastService.fhircastGetContext(); \n console.debug('FhircastPanel: Get Context response: ',JSON.stringify(response));\n alert(JSON.stringify(response));\n } catch(err) {\n console.warn('FhircastPanel: Get Context error ',err.message);\n }\n }\n\n const handleChange=()=>{}\n \n const patientOpenCheckboxClick =()=>{\n setPatientOpenCheckbox(!patientOpenCheckbox);\n }\n const patientCloseCheckboxClick =()=>{\n setPatientCloseCheckbox(!patientCloseCheckbox);\n }\n const imagingStudyOpenCheckboxClick =()=>{\n setImagingStudyOpenCheckbox(!imagingStudyOpenCheckbox);\n }\n const imagingStudyCloseCheckboxClick =()=>{\n setImagingStudyCloseCheckbox(!imagingStudyCloseCheckbox);\n }\n const diagnosticReportOpenCheckboxClick =()=>{\n setDiagnosticReportOpenCheckbox(!diagnosticReportOpenCheckbox);\n }\n const diagnosticReportCloseCheckboxClick =()=>{\n setDiagnosticReportCloseCheckbox(!diagnosticReportCloseCheckbox);\n }\n\n const overwriteDataCheckboxClick =()=>{\n setOverwriteDataCheckbox(!overwriteDataCheckbox);\n }\n const sendIMOpenCheckboxClick =()=>{\n setSendIMOpen(!sendIMOpen);\n }\n const sendIMCloseCheckboxClick =()=>{\n setSendIMClose(!sendIMClose);\n }\n\n const changeHub=(selected)=>{\n setSelectedHub(selected);\n sethubConnected(false);\n setTokenAcquired(false);\n FhircastService.setHub(selected.value);\n }\n return (\n <>\n <div className=\"bg-secondary-main flex justify-between px-2 py-1\">\n <span className=\"text-base center font-bold uppercase tracking-widest text-white\">FHIRcast</span> \n </div>\n <div className=\"ohif-scrollbar overflow-y-auto overflow-x-hidden text-primary-light text-base\"> \n <hr/>\n <label className=\"leading-[1.2] text-[12px]\">Hub status: </label> \n {hubConnected && <label className=\" leading-[1.2] text-white\">SUBSCRIBED</label>}\n {!hubConnected && <label className=\" leading-[1.2] text-white\">NOT SUBSCRIBED</label>} \n <br/>\n <Select \n id='hub'\n options={getHubOptions()}\n value={selectedHub}\n onChange={value => changeHub(value)}\n />\n <Button \n type={ButtonEnums.type.secondary}\n disabled={false}\n onClick= {getTokenClick}\n size='small'\n >Get token\n </Button>\n <br/><hr/>\n <Label className=\" leading-[1.2] text-primary-light \" >Subscribe to a topic:\n <InputText \n label=''\n id='topic' \n disabled={hubConnected || !tokenAcquired}\n value={topic}\n onChange={newValue=> { \n setTopic(newValue); \n FhircastService.setTopic(newValue);\n }}>\n </InputText>\n </Label>\n <br/>\n <Button \n type={ButtonEnums.type.secondary}\n disabled={hubConnected || !tokenAcquired}\n onClick= {subscribeClick}\n size='small'\n >Subscribe\n </Button>\n <Button \n type={ButtonEnums.type.secondary}\n disabled={!hubConnected || !tokenAcquired}\n onClick= {unsubscribeClick}\n size='small'\n >Unsubscribe\n </Button>\n <br/><hr/>\n <Button \n type={ButtonEnums.type.secondary}\n disabled={!tokenAcquired}\n onClick= {getContextClick}\n size='small' \n >Get context\n </Button>\n <label>Auto-load context:\n <input type='checkbox' checked={!patientOpenCheckbox} onChange={patientOpenCheckboxClick}/> \n </label>\n <br/><hr/>\n <p>Publish an event:</p>\n <Select \n id='eventSelect'\n options={testData}\n value={publishEvent}\n onChange={value => {setPublishEvent({label: value.value});}}\n defaultValue= {{label:'ImagingStudy-open',value: 'ImagingStudy-open'}}\n /> \n <Button \n type={ButtonEnums.type.secondary}\n disabled={!tokenAcquired}\n onClick= {publishClick}\n size='small' \n >Publish\n </Button>\n <label>Overwrite test data:\n <input type='checkbox' checked={overwriteDataCheckbox} onChange={overwriteDataCheckboxClick}/> \n </label>\n <br/><hr/>\n <p>Handle events from this hub:</p>\n\n <br/>\n <label>Patient-open:\n <input type='checkbox' checked={patientOpenCheckbox} onChange={patientOpenCheckboxClick}/> \n </label><br/>\n <label>Patient-close:\n <input type='checkbox' checked={patientCloseCheckbox} onChange={patientCloseCheckboxClick}/> \n </label><br/>\n <label>ImagingStudy-open:\n <input type='checkbox' checked={imagingStudyOpenCheckbox} onChange={imagingStudyOpenCheckboxClick}/> \n </label><br/>\n <label>ImagingStudy-close:\n <input type='checkbox' checked={imagingStudyCloseCheckbox} onChange={imagingStudyCloseCheckboxClick}/> \n </label><br/>\n <label>DiagnosticReport-open:\n <input type='checkbox' checked={diagnosticReportOpenCheckbox} onChange={diagnosticReportOpenCheckboxClick}/> \n </label><br/>\n <label>DiagnosticReport-close:\n <input type='checkbox' checked={diagnosticReportOpenCheckbox} onChange={diagnosticReportOpenCheckboxClick}/> \n </label><br/>\n <br/><hr/>\n <p>Send events to this hub:</p>\n <br/>\n <label>ImagingStudy-open:\n <input type='checkbox' checked={sendIMOpen} onChange={sendIMOpenCheckboxClick} /> \n </label><br/>\n <label>ImagingStudy-close:\n <input type='checkbox' checked={sendIMClose} onChange={sendIMCloseCheckboxClick} /> \n </label><br/>\n\n </div>\n </>\n );\n\n}\n//setSendIMOpen(!sendIMOpen) \n //setSendIMClose(!sendIMClose)\nexport default FhircastPanel;\n","import React, { useState, useEffect } from 'react';\nimport { ServicesManager, ExtensionManager, CommandsManager, DicomMetadataStore } from '@ohif/core';\nimport { Button, ButtonEnums,Label,Select,InputText } from '@ohif/ui'\nimport {powercastGetConfiguration} from './powercast'\nimport { useAppConfig } from '@state';\n\nfunction PowercastPanel(){ \n\n const [configuration, setconfiguration] = useState('');\n const [authorization, setWauthorization] = useState('');\n const [appConfig] =useAppConfig();\n\n const getConfigurationClick= async() => {\n console.debug('Powercast: Get topic and configuration.');\n try {\n var response=await powercastGetConfiguration(appConfig.powercastConnector[0].connector_config_endpoint); \n console.debug('PowerCast: Get configuration response: ',JSON.stringify(response));\n setconfiguration(JSON.stringify(response));\n } catch(err) { \n console.debug('PowerCast: Get configuration error: ',err.message);\n setconfiguration(err.message);\n }\n }\n\n\n const getAuthorizationClick= async() => {\n console.debug('Powercast: Getting auth.');\n try {\n // const myhub=getHub();\n // var response=await powercastGetContext(myhub,topic); \n // console.debug('FHIRcast: Get Context response: ',JSON.stringify(response));\n // setconfiguration(JSON.stringify(response));\n setconfiguration('\"authorization_endpoint\": \"https://nuance-auth0-server/oauth/authorize\"');\n // alert(JSON.stringify(response));\n } catch(err) {\n \n \n }\n }\n\n return (\n <>\n <div className=\"ohif-scrollbar overflow-y-auto overflow-x-hidden text-primary-light text-base\"> \n <Button \n type={ButtonEnums.type.secondary}\n onClick= {getConfigurationClick}\n size='small'\n >Get configuration\n </Button>\n <textarea className=\"text-[10px] text-black\"\n id='configuration' \n readOnly\n value={configuration} \n rows={6} \n cols={40} \n />\n <br/><hr/>\n <Button \n type={ButtonEnums.type.secondary}\n onClick= {getAuthorizationClick}\n size='small' \n >Get Authorization\n </Button>\n <textarea className=\"text-[10px] text-black\"\n id='authorization' \n readOnly\n value={authorization} \n rows={6} \n cols={40} \n />\n </div>\n </>\n );\n}\n\nexport default PowercastPanel;","\nexport async function powercastGetConfiguration(connector_endpoint) {\n const requestOptions = {\n method: 'GET',\n headers: { 'Content-Type': 'application/json' },\n };\n try {\n const response = await fetch(connector_endpoint,requestOptions);\n if (response.status==200) {\n const config= await response.json();\n return(config); \n }\n }\n catch(err) {\n console.debug('PowerCast: Error getting configuration.', err.message);\n }\n}\nexport async function powercastGetToken(hub ,topic, eventCallback) {\n const endpoint='1231234414';\n // Create a URL object with the current location\n const urlObj = new URL(window.location.origin + window.location.pathname + location.search+'/fhircastCallback');\n console.debug(URL.url);\n var formData ='hub.callback=http://localhost:3000/fhircastCallback';\n formData +='&hub.mode=subscribe' ;\n formData +='&hub.events=' +hub.events;\n formData +='&hub.secret=' +hub.secret;\n formData +='&hub.topic=' + topic ;\n formData +='&hub.lease=' +hub.lease;\n formData +='&hub.channel.type=websocket';\n formData +='&hub.channel.endpoint='+endpoint;\n const requestOptions = {\n method: 'POST',\n headers: { 'Content-Type': 'application/x-www-form-urlencoded' },\n body: formData\n };\n try {\n const response = await fetch(hub.url,requestOptions);\n if (response.status==202) {\n console.debug('FHIRcast: Subscription accepted by hub. opening websocket.');\n // open websocket\n var protocol='ws:';\n const url= new URL(hub.url);\n if (hub.url.includes('https:')) { protocol='wss:';}\n const wsEvents = new WebSocket(protocol+'//' + url.host + '/bind/'+endpoint);\n wsEvents.onopen = function () {\n console.debug('FHIRcast: websocket is connected.');\n //wsEvents.send('bind:'+hubs[0].endpoint); ?? Nuance wants the endpoint back after connection I think \n } \n wsEvents.onmessage = function (ev) {\n console.debug('FHIRcast: websocket received data.');\n eventCallback(ev.data);\n }\n wsEvents.onclose = function () {\n console.debug('FHIRcast: websocket is closed.');\n // set status of hub to disconnected here\n }\n var subscribedHub=new fhircastHubClass();\n subscribedHub.url=hub.url;\n subscribedHub.topic=topic;\n subscribedHub.name=hub.name;\n subscribedHub.status=\"connected\";\n return subscribedHub;\n }\n else {\n console.debug('FHIRcast: Subscription rejected by hub:',response.status);\n }\n }\n catch(err) {\n console.debug('FHIRcast: Error subscribing to the hub.', err.message);\n }\n}","\nimport React from 'react';\nimport { CustomizationService } from '@ohif/core';\nimport { ServicesManager, CommandsManager, ExtensionManager } from '@ohif/core';\n\nexport function CallbackCheck() {\n console.debug('FHIRcast: callback called'); \n return('{hub.topic=\"FHIRcast conference\",hub.challenge=\"secret\"}'); \n\n //'{hub.topic=\"FHIRcast conference\",hub.chalenge=\"secret\"}',\n} \n\n\nexport default function getCustomizationModule({ servicesManager, extensionManager }) {\n return [\n {\n name: 'fhircastCallback',\n value: {\n id: 'customRoutes',\n routes: [\n {\n path: '/fhircastCallback',\n children: () => <CallbackCheck/>,\n // console.debug('FHIRcast: callback called');\n // return('{hub.topic=\"FHIRcast conference\",hub.chalenge=\"secret\"}'); //'{hub.topic=\"FHIRcast conference\",hub.chalenge=\"secret\"}', \n },\n ],\n },\n },\n\n ]\n}\n","/*\nFhircastService\n\n public async fhircastPublish(fhircastMessage) -returns response.status\n public async fhircastGetContext() = returns context object\n\n processEvent\n\n public async getToken() \n public async fhircastSubscribe() \n public async fhircastUnsubscribe() \n\n public setHub(hubName: string) : boolean\n public getHub() : returns the hub object if set.\n public setTopic(topic: string) \n public getTopic(topic: string) :string\n \n*/\nimport { PubSubService, ServicesManager,CommandsManager ,ExtensionManager} from '@ohif/core';\n\nconst EVENTS = {\n FHIRCAST_MESSAGE: 'fhircastMessage',\n HUB_SUBSCRIBED: 'hubSubscribed',\n HUB_UNSUBSCRIBED: 'hubUnsubscribed',\n WEBSOCKET_CLOSE: 'websocketClose',\n TOKEN_ACQUIRED: 'tokenAcquired',\n STUDY_CLOSE: 'studyClose',\n};\n\nclass FhircastService extends PubSubService {\n private _extensionManager: ExtensionManager;\n private _servicesManager: ServicesManager;\n private _commandsManager: CommandsManager;\n // private _resubscribe: boolean;\n\n public static readonly EVENTS = EVENTS;\n\n public static REGISTRATION = {\n name: 'fhircastService',\n altName: 'FhircastService',\n create: ({ extensionManager, commandsManager, servicesManager}) => {\n return new FhircastService(extensionManager, commandsManager, servicesManager);\n },\n };\n \n public hub={\n name: '',\n friendlyName: '',\n productName : '',\n enabled: false,\n events: [],\n lease:999,\n hub_endpoint: '',\n authorization_endpoint: '',\n token_endpoint: '',\n token:'',\n subscriberName:'',\n topic: '',\n lastPublishedMessageID: '', // to filter event echo\n subscribed:false,\n resubscribeRequested: false,\n websocket: null \n };\n\n private readonly fhircastConfig=window.config.fhircast;\n \n constructor(\n extensionManager: ExtensionManager,\n commandsManager: CommandsManager,\n servicesManager: ServicesManager\n ) {\n console.debug('FhircastService: creating service ' );\n super(EVENTS);\n this._extensionManager = extensionManager;\n this._commandsManager = commandsManager;\n this._servicesManager = servicesManager;\n if (this.fhircastConfig.defaultHub){ \n const result=this.setHub(this.fhircastConfig.defaultHub); \n if (this.fhircastConfig.autoStart) { this.getToken(); } \n } \n const interval = setInterval(()=> {this.checkWebsocket(interval);},10000);\n }\n \n private checkWebsocket= async(interval) => { // resubscribe every 10secs if the websocket disconnects\n //console.debug('FhircastService: checking websocket ' );\n\n if ( this.hub.resubscribeRequested && this.hub.subscribed && this.fhircastConfig.autoReconnect) {\n console.debug('FhircastService: Try to resubscribe ' );\n this.hub.resubscribeRequested=false;\n var response= await this.fhircastSubscribe();\n if (response==202) {\n this.hub.resubscribeRequested=false;\n } else {\n this.hub.resubscribeRequested=true; \n }\n }\n else if (!this.hub.subscribed && this.hub.resubscribeRequested) {\n this.hub.resubscribeRequested=false;\n }\n }\n\n public createImagingStudyClose(StudyUID:string){\n var message={\n timestamp: '',\n id: '',\n event: {\n 'hub.topic': '',\n 'hub.event': 'imagingstudy-close',\n context: []\n }\n }\n return(message);\n }\n\n\n public createImagingStudyOpen(StudyUID:string){\n var message={\n timestamp: '',\n id: '',\n event: {\n 'hub.topic': '',\n 'hub.event': 'imagingstudy-open',\n context: [\n {\n key: \"patient\",\n resource: {\n resourceType: 'Patient',\n id: 'ewUbXT9RWEbSj5wPEdgRaBw3',\n identifier: [\n {\n system: 'urn:oid:1.2.840.114350',\n value: '185444'\n },\n {\n system: 'urn:oid:1.2.840.114350.1.13.861.1.7.5.737384.27000',\n value: '2667'\n }\n ]\n }\n },\n {\n key: 'study',\n resource: {\n resourceType: 'ImagingStudy',\n id: '', // FHIR id\n uid: 'urn:oid:' + StudyUID ,\n identifier: [\n {\n system: '7678',\n value: '' // acc nbr\n }\n ],\n patient: {\n reference: 'Patient/ewUbXT9RWEbSj5wPEdgRaBw3' \n }\n }\n }\n ] \n }\n \n }\n return(message);\n }\n\n public setHub(hubName: string) : boolean {\n if (hubName===this.hub.name) {\n console.debug('FhircastService: setHub: hub already set to ' + hubName );\n return(true);\n } \n console.debug('FhircastService: setting hub to ' + hubName );\n try {\n if (this.fhircastConfig.hubs) {\n this.fhircastConfig.hubs.forEach(hubconfig =>{\n if (hubconfig.enabled && hubconfig.name===hubName) {\n if (this.hub.subscribed) {this.fhircastUnsubscribe();}\n this.hub=hubconfig;\n this.hub.subscribed=false;\n return(true);\n }\n });\n } \n else {\n console.debug('FhircastService: hub not found in configuration ' + hubName );\n return(false);\n }\n } catch(err) {\n console.warn('FhircastService: Unable to set the hub to ' + hubName );\n return(false);\n } \n }\n \n public getHub() {\n console.debug('FhircastService: getHub: hub is ' + this.hub.name );\n return(this.hub) ;\n }\n\n public getTopic(topic: string) :string {\n console.debug('FhircastService: getTopic called.' );\n return(this.hub.topic);\n }\n\n public setTopic(topic: string) {\n console.debug('FhircastService: setting topic to ' +topic );\n this.hub.topic=topic;\n this.hub.subscriberName='OHIF-'+topic+'-'+Math.random().toString(36).substring(2, 16);\n }\n\n public async getToken() {\n console.debug('FhircastService: Getting token.');\n const tokenFormData= new URLSearchParams(); \n tokenFormData.append('grant_type','client_credentials');\n tokenFormData.append('client_id',process.env.REACT_APP_FHIRCAST_CLIENT_ID);\n tokenFormData.append('client_secret',process.env.REACT_APP_FHIRCAST_CLIENT_SECRET);\n const requestOptions = {\n method: 'POST',\n headers: { 'Content-Type': 'application/x-www-form-urlencoded' },\n body: tokenFormData\n };\n try {\n const response = await fetch(this.hub.token_endpoint,requestOptions);\n if (response.status==200) {\n const config= await response.json();\n if (config.access_token) {\n console.debug('FhircastService: Token received: ',config.access_token);\n this.hub.token=config.access_token\n this._broadcastEvent(FhircastService.EVENTS.TOKEN_ACQUIRED,{})\n }\n if (config.topic) {\n console.debug('FhircastService: Topic received: ',config.topic);\n this.setTopic(config.topic);\n if (this.fhircastConfig.autoStart) { \n this.fhircastSubscribe(); \n let studyUID=null;\n const currentContext= await this.fhircastGetContext();\n console.debug('FhircastService: current context is: '+JSON.stringify(currentContext));\n if (false && currentContext && currentContext!=='') {\n currentContext.forEach(contextResource => {\n if (contextResource.key.toLowerCase()==='study') {\n studyUID=contextResource.resource.uid.replaceAll('urn:oid:','');\n console.debug('FhircastPanel: opening on startup with current context: '+studyUID);\n // try { this._commandsManager.runCommand('navigateHistory',{to:'/viewer?StudyInstanceUIDs='+studyUID}); }\n // catch(err) {console.debug('FhircastPanel:error opening on startup with current context: '+err);}\n }\n });\n } \n } \n }\n return(true); \n }\n\n else {\n console.debug('FhircastService: Error getting token.');\n return(false); \n }\n }\n catch(err) {\n console.warn('FhircastService: Error getting token:', err.message);\n return(false);\n }\n }\n\n public async fhircastUnsubscribe() {\n this.hub.subscribed=false;\n this.hub.resubscribeRequested=false;\n const subscribeFormData= new URLSearchParams(); \n subscribeFormData.append('hub.mode', 'unsubscribe');\n subscribeFormData.append('hub.channel.type','websocket');\n subscribeFormData.append('hub.callback',window.location.origin +'/fhircastCallback');\n subscribeFormData.append('hub.events',this.hub.events.toString());\n subscribeFormData.append('hub.topic',this.hub.topic);\n subscribeFormData.append('hub.lease',this.hub.lease.toString());\n subscribeFormData.append('subscriber.name',this.hub.subscriberName);\n const requestOptions = {\n method: 'POST',\n headers: { 'Content-Type': 'application/x-www-form-urlencoded',\n 'Authorization': 'Bearer ' +this.hub.token\n },\n body: subscribeFormData,\n signal: AbortSignal.timeout(5000)\n };\n try {\n const response = await fetch(this.hub.hub_endpoint,requestOptions);\n if (response.status==202) { \n const subscriptionResponse=await response.json();\n console.debug('FhircastService: Unsubscribe successfully from hub '+this.hub.name); \n this._broadcastEvent(FhircastService.EVENTS.HUB_UNSUBSCRIBED,{}); \n }\n else {\n console.debug('FhircastService: Unsubscribe refused by the hub. '); \n }\n }\n catch(err) {\n console.warn('FhircastService: Error unsubscribing from the hub.', err.message);\n }\n if (this.hub.websocket) {this.hub.websocket.close();}\n \n }\n\n private processEvent(eventData) {\n try { \n const fhirMessage=JSON.parse(eventData);\n if (fhirMessage['hub.mode']) {\n console.debug('FhircastService: Subscription acknowledged on the websocket.'); \n }\n if (fhirMessage.event) { \n if (fhirMessage.event['hub.event']==='heartbeat') {\n console.debug('FhircastService: Received websocket heartbeat from hub.');\n }\n else if (fhirMessage.id===this.hub.lastPublishedMessageID) {\n console.debug('FhircastService: Received echo of event '+fhirMessage.event['hub.event']+', id:'+fhirMessage.id); \n } \n else if (fhirMessage.event) \n { \n console.debug('FhircastService: websocket received data: ',eventData); \n this._broadcastEvent(FhircastService.EVENTS.FHIRCAST_MESSAGE,{}); \n let currentLocation=window.location.search; \n\n //console.debug('FhircastService: current location: ',currentLocation); \n if ( fhirMessage.event['hub.event'].toLowerCase()==='patient-open') {\n if (fhirMessage.event.context) {\n var mrn=null;\n fhirMessage.event.context.forEach(contextResource => {\n if (contextResource.key.toLowerCase()==='patient') {\n mrn=contextResource.resource.identifier[0].value;\n }\n });\n console.debug('FhircastService: patient-open for mrn:'+mrn);\n this._commandsManager.runCommand('navigateHistory',{to:'/?mrn='+mrn});\n } \n else {\n console.warn('FhircastService: mrn not found in patient-open message.');\n } \n }\n if ( currentLocation!='' && fhirMessage.event['hub.event'].toLowerCase()==='patient-close') {\n this._commandsManager.runCommand('navigateHistory',{to:'/'});\n }\n if ( fhirMessage.event['hub.event'].toLowerCase()==='imagingstudy-open') {\n var studyUID=null;\n fhirMessage.event.context.forEach(contextResource => {\n if (contextResource.key.toLowerCase()==='study') {\n studyUID=contextResource.resource.uid.replaceAll('urn:oid:','');\n }\n });\n if (studyUID!==null && !currentLocation.includes(studyUID)){\n console.debug('FhircastService: imagingstudy-open, opening '+studyUID);\n this._commandsManager.runCommand('navigateHistory',{to:'/viewer?StudyInstanceUIDs='+studyUID+'&FHIRcast'});\n }\n else if (studyUID===null) {\n console.debug('FhircastService: imagingstudy-open, studyUID not found in message'); \n } else if (currentLocation.includes(studyUID)) {\n console.debug('FhircastService: imagingstudy-open, studyUID already open'); \n }\n }\n if ( currentLocation!='' && fhirMessage.event['hub.event'].toLowerCase()==='imagingstudy-close') {\n this._commandsManager.runCommand('navigateHistory',{to:'/'});\n }\n if ( fhirMessage.event['hub.event'].toLowerCase()==='diagnosticreport-open') {\n const studyUID=fhirMessage.event.context[1].identifier[0].value;\n console.debug('FhircastService: Opening '+studyUID);\n this._commandsManager.runCommand('navigateHistory',{to:'/viewer?StudyInstanceUIDs='+studyUID});\n }\n if ( currentLocation!='' && fhirMessage.event['hub.event'].toLowerCase()==='diagnosticreport-close') {\n this._commandsManager.runCommand('navigateHistory',{to:'/'});\n }\n } \n } \n } catch(err){\n console.warn('FhircastService: websocket processing error: ',err);\n } \n } \n\n private websocketClose() {\n console.debug('FhircastService: websocket is closed.');\n this.hub.resubscribeRequested=true;\n this._broadcastEvent(FhircastService.EVENTS.WEBSOCKET_CLOSE,{});\n }\n\n public async fhircastSubscribe() {\n if (this.hub.topic===undefined ) {\n console.warn('FhircastService: Error. subscription not sent. No topic defined.');\n return ('error: topic not defined');\n }\n const subscribeFormData= new URLSearchParams(); \n subscribeFormData.append('hub.mode', 'subscribe');\n subscribeFormData.append('hub.channel.type','websocket');\n subscribeFormData.append('hub.callback',window.location.origin +'/fhircastCallback');\n subscribeFormData.append('hub.events',this.hub.events.toString());\n subscribeFormData.append('hub.topic',this.hub.topic);\n subscribeFormData.append('hub.lease',this.hub.lease.toString());\n subscribeFormData.append('subscriber.name',this.hub.subscriberName);\n const requestOptions = {\n method: 'POST',\n headers: { 'Content-Type': 'application/x-www-form-urlencoded',\n 'Authorization': 'Bearer ' +this.hub.token\n },\n body: subscribeFormData,\n signal: AbortSignal.timeout(5000)\n };\n try {\n const response = await fetch(this.hub.hub_endpoint,requestOptions);\n if (response.status==202) { \n this.hub.subscribed=true;\n this.hub.resubscribeRequested=false;\n const subscriptionResponse=await response.json();\n console.debug('FhircastService: subscribe response: '+JSON.stringify(subscriptionResponse));\n const websocket_url=subscriptionResponse['hub.channel.endpoint']; \n this.hub.websocket = new WebSocket(websocket_url); // open websocket \n this.hub.websocket.onopen = function () {\n console.debug('FhircastService: websocket is connected.'); // Nuance wants the endpoint back after connection I think \n this.send('{\"hub.channel.endpoint\":\"'+websocket_url+'\"}');\n } \n this.hub.websocket.addEventListener('message',(ev)=>this.processEvent(ev.data)) ;\n this.hub.websocket.addEventListener('close',()=>this.websocketClose()) ;\n this.hub.websocket.onerror = function () {console.warn('FhircastService: Error reported on websocket:'); }\n \n this._broadcastEvent(FhircastService.EVENTS.HUB_SUBSCRIBED,{});\n \n }\n if (response.status==401) { \n console.debug('FhircastService: Subscription response 401 -Token refresh needed here.');\n this.getToken(); \n }\n else {\n console.debug('FhircastService: Subscription rejected by hub:',response.status); \n }\n return(response.status); \n }\n catch(err) {\n console.warn('FhircastService: Error subscribing to the hub.', err.message);\n }\n }\n\n public async fhircastPublish(fhircastMessage) {\n const timestamp= new Date();\n fhircastMessage.timestamp = timestamp.toJSON();\n fhircastMessage.id = 'OHIF-'+Math.random().toString(36).substring(2, 16);\n this.hub.lastPublishedMessageID=fhircastMessage.id; // to filter event echo from the hub\n fhircastMessage.event['hub.topic'] = this.hub.topic;\n const message = JSON.stringify(fhircastMessage); \n const requestOptions = {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' , \n 'Authorization': 'Bearer ' +this.hub.token\n },\n body: message\n };\n try {\n console.debug(\"FhircastService: Publishing message to FHIRcast hub: \" + message)\n var hubEndpoint=this.hub.hub_endpoint+'/'+this.hub.topic;\n if (this.hub.productName==='PHILIPS') {\n hubEndpoint=this.hub.hub_endpoint;\n }\n const response = await fetch(hubEndpoint,requestOptions);\n return(response);\n }\n catch(err) {\n console.debug(err.message);\n return(null);\n }\n }\n\n public async fhircastGetContext() {\n console.debug(\"FhircastService: Retrieving context from FHIRcast hub.\");\n try {\n const requestOptions = {\n method: 'GET',\n headers: { 'Content-Type': 'application/json',\n 'Authorization': 'Bearer ' +this.hub.token\n }\n };\n const response = await fetch(this.hub.hub_endpoint+'/'+this.hub.topic,requestOptions);\n const context= await response.json();\n return(context);\n } catch(err) {\n console.warn('FhircastService: get context error: ',err.message);\n return(err.text);\n }\n } \n\n}\n\nexport default FhircastService;\nexport { EVENTS };\n\n\n","import { id } from './id';\nimport getPanelModule from './fhircast/getPanelModule';\nimport getCustomizationModule from './fhircast/getCustomizationModule';\nimport { ServicesManager, ExtensionManager, CommandsManager, DicomMetadataStore } from '@ohif/core';\nimport FhircastService from './services/FhircastService';\n\n\n\n\nexport default {\n\n id,\n\n //preRegistration: ({ servicesManager, commandsManager, configuration = {} }) => {\n preRegistration: ({ servicesManager, commandsManager, extensionManager, configuration = {}}) => {\n\n servicesManager.registerService(FhircastService.REGISTRATION);\n },\n\n \n\n getPanelModule,\n\n getCustomizationModule,\n\n\n\n};\n","import React from 'react';\nimport { ServicesManager, CommandsManager, ExtensionManager } from '@ohif/core';\nimport { useViewportGrid } from '@ohif/ui';\nimport { MeasurementTable } from '@ohif/ui';\nimport FhircastPanel from './FhircastPanel';\nimport PowercastPanel from './PowercastPanel';\n\n\nexport default function getPanelModule({\n commandsManager,\n extensionManager,\n servicesManager,\n}: {\n servicesManager: ServicesManager;\n commandsManager: CommandsManager;\n extensionManager: ExtensionManager;\n}) {\n\n const wrappedPowercastPanel = () => {\n const [{ activeViewportId, viewports }] = useViewportGrid();\n\n return (\n <PowercastPanel\n viewports={viewports}\n activeViewportId={activeViewportId}\n onSaveComplete={() => {}}\n onRejectComplete={() => {}}\n commandsManager={commandsManager}\n servicesManager={servicesManager}\n extensionManager={extensionManager}\n />\n );\n };\n\n\n const wrappedFhircastPanel = () => {\n const [{ activeViewportId, viewports }] = useViewportGrid();\n\n return (\n <FhircastPanel\n viewports={viewports}\n activeViewportId={activeViewportId}\n onSaveComplete={() => {}}\n onRejectComplete={() => {}}\n commandsManager={commandsManager}\n servicesManager={servicesManager}\n extensionManager={extensionManager}\n />\n \n );\n };\n\n\n\n return [\n {\n name: 'PowercastPanel',\n iconName: 'power-off',\n iconLabel: 'power-off',\n label: 'Powercast',\n secondaryLabel: 'Measurements',\n component: wrappedPowercastPanel,\n },\n {\n name: 'FhircastPanel',\n iconName: 'power-off',\n iconLabel: 'power-off',\n label: 'FHIRcast',\n secondaryLabel: 'Measurements',\n component: wrappedFhircastPanel,\n },\n\n ];\n}\n"],"names":["label","value","eventObject","servicesManager","commandsManager","extensionManager","FhircastService","services","hubConnected","sethubConnected","useState","tokenAcquired","setTokenAcquired","topic","setTopic","publishEvent","setPublishEvent","selectedHub","setSelectedHub","overwriteDataCheckbox","setOverwriteDataCheckbox","patientOpenCheckbox","setPatientOpenCheckbox","patientCloseCheckbox","setPatientCloseCheckbox","imagingStudyOpenCheckbox","setImagingStudyOpenCheckbox","imagingStudyCloseCheckbox","setImagingStudyCloseCheckbox","diagnosticReportOpenCheckbox","setDiagnosticReportOpenCheckbox","diagnosticReportCloseCheckbox","setDiagnosticReportCloseCheckbox","sendIMOpen","setSendIMOpen","sendIMClose","setSendIMClose","appConfig","useAppConfig","hub","name","friendlyName","productName","enabled","events","lease","hub_endpoint","authorization_endpoint","token_endpoint","token","subscribed","subscriberName","useEffect","getHub","fhircastEvent","EVENTS","FHIRCAST_MESSAGE","hubSubscribed","HUB_SUBSCRIBED","hubUnsubscribed","HUB_UNSUBSCRIBED","websocketClose","WEBSOCKET_CLOSE","subscriptions","forEach","evt","unsubscribe","subscribe","console","debug","push","unsub","patientOpenCheckboxClick","diagnosticReportOpenCheckboxClick","React","className","Select","id","options","fhircast","hubs","onChange","changeHub","selected","setHub","Button","type","ButtonEnums","secondary","disabled","onClick","async","getToken","size","Label","InputText","newValue","undefined","getTopic","fhircastSubscribe","fhircastUnsubscribe","response","fhircastGetContext","JSON","stringify","alert","err","warn","message","checked","testData","defaultValue","eventObj","filter","e","event","toLowerCase","viewportGridService","displaySetService","cornerstoneViewportService","displaySet","getActiveDisplaySets","instance","instances","StudyInstanceUID","context","resource","uid","fhircastPublish","statusText","overwriteDataCheckboxClick","patientCloseCheckboxClick","imagingStudyOpenCheckboxClick","imagingStudyCloseCheckboxClick","sendIMOpenCheckboxClick","sendIMCloseCheckboxClick","configuration","setconfiguration","authorization","setWauthorization","connector_endpoint","requestOptions","method","headers","fetch","status","json","powercastGetConfiguration","powercastConnector","connector_config_endpoint","readOnly","rows","cols","CallbackCheck","TOKEN_ACQUIRED","STUDY_CLOSE","PubSubService","constructor","super","_extensionManager","_servicesManager","_commandsManager","lastPublishedMessageID","resubscribeRequested","websocket","fhircastConfig","window","config","checkWebsocket","this","autoReconnect","defaultHub","autoStart","interval","setInterval","createImagingStudyClose","StudyUID","timestamp","createImagingStudyOpen","key","resourceType","identifier","system","patient","reference","hubName","hubconfig","Math","random","toString","substring","tokenFormData","URLSearchParams","append","process","body","access_token","_broadcastEvent","currentContext","subscribeFormData","location","origin","signal","AbortSignal","timeout","close","processEvent","eventData","fhirMessage","parse","currentLocation","search","mrn","contextResource","runCommand","to","studyUID","replaceAll","includes","subscriptionResponse","websocket_url","WebSocket","onopen","send","addEventListener","ev","data","onerror","fhircastMessage","Date","toJSON","hubEndpoint","text","_FhircastService","REGISTRATION","altName","create","preRegistration","registerService","getPanelModule","iconName","iconLabel","secondaryLabel","component","wrappedPowercastPanel","activeViewportId","viewports","useViewportGrid","PowercastPanel","onSaveComplete","onRejectComplete","wrappedFhircastPanel","FhircastPanel","getCustomizationModule","routes","path","children"],"sourceRoot":""}