Presentation Context

本文介绍PresentationContext模式的应用,旨在减少界面代码职责,提高代码可读性和重用性。该模式通过封装上下文信息,实现资源加载及多个视图间的资源共享。

1. 目的

使界面代码承担的职责更少,便于代码的维护,提高代码可读性。

2. 动机

我们在编写客户端代码的时候,经常会用到字符资源、图片资源以及多个View 间共享实例,这些职责如果由View 自己负责,一方面,降低了代码的重用性(资源加载的代码),另一方面,也使View 承担了更多的职责,不利用View 的维护。如果这部分职责由外部实现,View 又如何访问这些资源。这就是Presentation Context 的模式所要解决的问题。

3.参与者

1. Presentation Context:它封装了View 在创建时所需要的上下文信息,并且可以作为多个View 之间共享对象的容器。

2. Component Factory:它负责创建Swing 控制和平台自定义的控制。使用Componet Factory 的好处是可以统一的控制系统内部的控件,例如:通过Component Factory 创建的对话框都可以点击Esc 键关闭,点击F1 出现Help 对话模式。

4. 特点

1. 优点:(1)使用Presentation Context 可是分解View 的职责,使View 的代码更容易维护。 (2) 使加载资源的代码可以被重用。(3)使多个View 间可以方便的共享对象。(4)使View 更容易访问客户端平台开放的接口。

5. 实现

1) ComponentFactory 接口代码

java 代码
 
  1. public interface ComponentFactory {
  2. public JLabel createJLabel(String labelText);
  3. public JDialog createJDialog(JComponent content);
  4. // ...
  5. }

2) ImageResourceFactory 接口代码

java 代码
 
  1. public interface ImageResourceFactory {
  2. public Image getImage(String imageId);
  3. public Icon getIcon(String iconId);
  4. }

3) PresentationContext 接口代码

java 代码
 
  1. public interface PresentationContext {
  2. public ResourceBundle getResourceBundle();
  3. public ComponentFactory getComponentFactory();
  4. public ImageResourceFactory getImageResourceFactory();
  5. public void setProperty(String name, Object value);
  6. public Object getProperty(String name);
  7. }

4) SampleView 代码

java 代码
 
  1. public class SampleView extends JPanel {
  2. private PresentationContext presentationContext;
  3. private ComponentFactory componentFactory;
  4. public SampleView(PresentationContext presentationContext) {
  5. this.presentationContext = presentationContext;
  6. componentFactory = presentationContext.getComponentFactory();
  7. constructUI();
  8. }
  9. protected void constructUI() {
  10. ResourceBundle resourceBundle = presentationContext.getResourceBundle();
  11. ImageResourceFactory imageResourceFactory = presentationContext
  12. .getImageResourceFactory();
  13. // Create a label with component factory that is injected by
  14. // presentation context.
  15. JLabel label = componentFactory.createJLabel(resourceBundle
  16. .getString("label.text"));
  17. label.setIcon(imageResourceFactory.getIcon("label.icon"));
  18. }
  19. public void showAsDialog() {
  20. JDialog dialog = componentFactory.createJDialog(this);
  21. dialog.pack();
  22. dialog.setVisible(true);
  23. }
  24. }

说明:

1) SampleView 中的文本资源和图片资源都是外部进行加载的,一般应用时可以由平台提供代码实现,然后各模块自己注入相应的路径。

2) SampleView 中的dialog 都是由平台提供的ComponentFactory 进行创建的,实现时平台可以在创建时,默认注册Esc 键的Listener。

6. 注意事项

1.Presentation Context 可以包含更多与特定客户端平台相关的内容,在应用时可以根据具体情况使用,但是要注意它里面不应该包含和领域逻辑相关的任何内容。

2.一个模块应该只有一个Presentation Context 实例,最好由平台创建或者有模块的Facade 负责创建。

6IjciLCJtZW51VHlwZSI6IjE1IiwidXNlclR5cGUiOiIiLCJyb2xlTm8iOiIiLCJwcm92aW5jZU5vIjoiNTEwMDAwIiwiY2l0eU5vIjoiNTExMzAwIiwiY291bnR5Tm8iOiI1MTEzMDMiLCJzdWIiOiJNSURETEVXQVJFX09QRVJBVE9SIiwiZXhwIjoxNzU4MTA0MTQ4fQ.fACT1_-YLrJjpwje-fbMC4lZBiZeKI1NviCuZZYPvu-xp1PDgtqHZRWfvEIA_CF4 sendEhrcRequest(789a42b5b0d3b665b9006a7320c01eff) - params: {"checkType":12,"roomNo":7,"sex":"1","isRemote":"0","studyInstanceUID":"1.2.156.112536.1.2142.15020053178095.15294846460.7","checkOfficeNo":1063,"deviceNo":7,"workstationNo":39,"doctorNo":27220,"checkDoctorNo":27220,"ageUnit":"","checkTime":"2025-09-10 18:16:50","eImaging":"1","name":"liyongshu","hospitalNo":987,"applyTime":"2025-09-10 17:21:38","dicomPatientID":"20250910-172121-B25F","age":"","officeNo":1063,"status":"1"} sendEhrcRequest(789a42b5b0d3b665b9006a7320c01eff) - url: http://218.89.49.206:8224/pacs/dicom/device-check-perform-save sendEhrcRequest(789a42b5b0d3b665b9006a7320c01eff) - result: {"status":0,"message":null,"data":null} sendEhrcRequest(789a42b5b0d3b665b9006a7320c01eff) - DEVICE_CHECK_PERFORM_SAVE End HCARE<-mindray(2): Failed to update DB caused by com.hcare.pacs.dcm4chee.entity.exception.HttpRequestException: 数据请求处理失败 - retry sendEhrcRequest(377d1cf959e9c45525e3901890a2dfe5) DEVICE_CHECK_PERFORM_SAVE(PUT}) Start sendEhrcRequest(377d1cf959e9c45525e3901890a2dfe5) - accesstoken: eyJhbGciOiJIUzM4NCJ9.eyJpc3MiOiJIVUFOQ0FSRS1FRlQtUEFDUyIsInR5cGUiOiI3IiwiYXV0aENvZGUiOiJmNTBmMTkxMGNiYzk0MjI5YTE3NTFhMjMxNmUzZGVjMCIsInVzZXJObyI6IjI3MjIwIiwidXNlckFjY3QiOiJkZ3lqZiIsInVzZXJOYW1lIjoi5pmP5ZCb5YekIiwiY29tbXVuaXR5Tm8iOiIiLCJob3NwaXRhbE5vIjoiOTg3IiwiaG9zcGl0YWxOYW1lIjoi5Y2X5YWF5biC6auY5Z2q5Yy656ys5LiJ5Lq65rCR5Yy76ZmiIiwiaG9zcGl0YWxUeXBlIjoiMCIsIm9mZmljZU5vIjoiMTA2MyIsIm9mZmljZU5vcyI6IjEwNjMiLCJyb29tTm8iOiI3Iiwicm9vbU5vcyI6IjciLCJtZW51VHlwZSI6IjE1IiwidXNlclR5cGUiOiIiLCJyb2xlTm8iOiIiLCJwcm92aW5jZU5vIjoiNTEwMDAwIiwiY2l0eU5vIjoiNTExMzAwIiwiY291bnR5Tm8iOiI1MTEzMDMiLCJzdWIiOiJNSURETEVXQVJFX09QRVJBVE9SIiwiZXhwIjoxNzU4MTA0MTQ4fQ.fACT1_-YLrJjpwje-fbMC4lZBiZeKI1NviCuZZYPvu-xp1PDgtqHZRWfvEIA_CF4 sendEhrcRequest(377d1cf959e9c45525e3901890a2dfe5) - params: {"checkType":12,"roomNo":7,"sex":"1","isRemote":"0","studyInstanceUID":"1.2.156.112536.1.2142.15020053178095.15294846460.7","checkOfficeNo":1063,"deviceNo":7,"workstationNo":39,"doctorNo":27220,"checkDoctorNo":27220,"ageUnit":"","checkTime":"2025-09-10 18:16:51","eImaging":"1","name":"liyongshu","hospitalNo":987,"applyTime":"2025-09-10 17:21:38","dicomPatientID":"20250910-172121-B25F","age":"","officeNo":1063,"status":"1"} sendEhrcRequest(377d1cf959e9c45525e3901890a2dfe5) - url: http://218.89.49.206:8224/pacs/dicom/device-check-perform-save sendEhrcRequest(377d1cf959e9c45525e3901890a2dfe5) - result: {"status":0,"message":null,"data":null} sendEhrcRequest(377d1cf959e9c45525e3901890a2dfe5) - DEVICE_CHECK_PERFORM_SAVE End HCARE<-mindray(2): Failed to update DB caused by com.hcare.pacs.dcm4chee.entity.exception.HttpRequestException: 数据请求处理失败 - retry sendEhrcRequest(038fe1c6a7229dfb0b02b5b5dba2f088) DEVICE_CHECK_PERFORM_SAVE(PUT}) Start sendEhrcRequest(038fe1c6a7229dfb0b02b5b5dba2f088) - accesstoken: eyJhbGciOiJIUzM4NCJ9.eyJpc3MiOiJIVUFOQ0FSRS1FRlQtUEFDUyIsInR5cGUiOiI3IiwiYXV0aENvZGUiOiJmNTBmMTkxMGNiYzk0MjI5YTE3NTFhMjMxNmUzZGVjMCIsInVzZXJObyI6IjI3MjIwIiwidXNlckFjY3QiOiJkZ3lqZiIsInVzZXJOYW1lIjoi5pmP5ZCb5YekIiwiY29tbXVuaXR5Tm8iOiIiLCJob3NwaXRhbE5vIjoiOTg3IiwiaG9zcGl0YWxOYW1lIjoi5Y2X5YWF5biC6auY5Z2q5Yy656ys5LiJ5Lq65rCR5Yy76ZmiIiwiaG9zcGl0YWxUeXBlIjoiMCIsIm9mZmljZU5vIjoiMTA2MyIsIm9mZmljZU5vcyI6IjEwNjMiLCJyb29tTm8iOiI3Iiwicm9vbU5vcyI6IjciLCJtZW51VHlwZSI6IjE1IiwidXNlclR5cGUiOiIiLCJyb2xlTm8iOiIiLCJwcm92aW5jZU5vIjoiNTEwMDAwIiwiY2l0eU5vIjoiNTExMzAwIiwiY291bnR5Tm8iOiI1MTEzMDMiLCJzdWIiOiJNSURETEVXQVJFX09QRVJBVE9SIiwiZXhwIjoxNzU4MTA0MTQ4fQ.fACT1_-YLrJjpwje-fbMC4lZBiZeKI1NviCuZZYPvu-xp1PDgtqHZRWfvEIA_CF4 sendEhrcRequest(038fe1c6a7229dfb0b02b5b5dba2f088) - params: {"checkType":12,"roomNo":7,"sex":"1","isRemote":"0","studyInstanceUID":"1.2.156.112536.1.2142.15020053178095.15294846460.7","checkOfficeNo":1063,"deviceNo":7,"workstationNo":39,"doctorNo":27220,"checkDoctorNo":27220,"ageUnit":"","checkTime":"2025-09-10 18:16:52","eImaging":"1","name":"liyongshu","hospitalNo":987,"applyTime":"2025-09-10 17:21:38","dicomPatientID":"20250910-172121-B25F","age":"","officeNo":1063,"status":"1"} sendEhrcRequest(038fe1c6a7229dfb0b02b5b5dba2f088) - url: http://218.89.49.206:8224/pacs/dicom/device-check-perform-save sendEhrcRequest(038fe1c6a7229dfb0b02b5b5dba2f088) - result: {"status":0,"message":null,"data":null} sendEhrcRequest(038fe1c6a7229dfb0b02b5b5dba2f088) - DEVICE_CHECK_PERFORM_SAVE End HCARE<-mindray(2): Failed to update DB: HCARE<-mindray(2): Unexpected Exception: HCARE<-mindray(2): processing 1:C-STORE-RQ[pcid=17, prior=0 cuid=1.2.840.10008.5.1.4.1.1.6.1 - Ultrasound Image Storage iuid=1.2.156.112536.1.2142.15020053178095.15294846850.9 - ? tsuid=1.2.840.10008.1.2.4.50 - JPEG Baseline (Process 1)] failed. Caused by: HCARE<-mindray(2) << 1:C-STORE-RSP[pcid=17, status=110H, errorComment=com.hcare.pacs.dcm4chee.entity.exception.HttpRequestException: 数 tsuid=1.2.840.10008.1.2.4.50 - JPEG Baseline (Process 1)] HCARE<-mindray(2) >> A-ABORT[source: 0 - service-user, reason: 0] HCARE<-mindray(2): close Socket[addr=/192.168.110.224,port=49766,localport=11112] 1.2.156.112536.1.2142.15020053178095.15294846850.9 handle StoreContextEvent fail, study size error: No result found for query [select st from Study st join st.patient p left join p.patientName left join st.referringPhysicianName join st.attributesBlob join p.dicomAttributesBlob where st.studyInstanceUID = ?1] onConnectionAccepted: Connection[cn: hc-conn-arc host: localhost port: 11112 ciphers: [] installed: null ] socket: Socket[addr=/192.168.110.224,port=49767,localport=11112] Accept connection Socket[addr=/192.168.110.224,port=49767,localport=11112] HCARE<-mindray(3) >> A-ASSOCIATE-RQ HCARE<-mindray(3) << A-ASSOCIATE-AC onAssociationAccepted - association: HCARE<-mindray(3) onAssociationAccepted - applicationEntity: ApplicationEntity[title: HCARE desc: Hide instances rejected for Quality Reasons acceptor: true initiator: true installed: null Connection[cn: hc-conn-arc host: localhost port: 11112 ciphers: [] installed: null ] TransferCapability[cn: Verification SOP Class SCP role: SCP as: 1.2.840.10008.1.1 - Verification SOP Class ts: 1.2.840.10008.1.2 - Implicit VR Little Endian ] TransferCapability[cn: Patient Root Query Retrieve Information Mod...] HCARE<-mindray(3) >> 1:C-STORE-RQ[pcid=17, prior=0 cuid=1.2.840.10008.5.1.4.1.1.6.1 - Ultrasound Image Storage iuid=1.2.156.112536.1.2142.15020053178095.15294846850.9 - ? tsuid=1.2.840.10008.1.2.4.50 - JPEG Baseline (Process 1)] Association(HCARE<-mindray(3)): Process STORE PresentationContext: PresentationContext[id: 17 result: 0 - acceptance ts: 1.2.840.10008.1.2.4.50 - JPEG Baseline (Process 1) ] RQ: (0000,0002) UI [1.2.840.10008.5.1.4.1.1.6.1] AffectedSOPClassUID (0000,0100) US [1] CommandField (0000,0110) US [1] MessageID (0000,0700) US [0] Priority (0000,0800) US [1] CommandDataSetType (0000,1000) UI [1.2.156.112536.1.2142.15020053178095.15294846850.9] AffectedSOPInstanceUID RSP: (0000,0002) UI [1.2.840.10008.5.1.4.1.1.6.1] AffectedSOPClassUID (0000,0100) US [32769] CommandField (0000,0120) US [1] MessageIDBeingRespondedTo (0000,0900) US [0] Status (0000,1000) UI [1.2.156.112536.1.2142.15020053178095.15294846850.9] AffectedSOPInstanceUID Merge Attributes using ArchiveAttributeCoercion2[cn=SupplementIssuerOfPatientID, priority=0, DIMSE=C_STORE_RQ, role=SCU, cuids=[], conditions={IssuerOfPatientID!=.+}, uri=merge-attrs:, description=null, onFailure=RETHROW, sufficient=false, attributeUpdatePolicy=MERGE, mergeAttributes=[IssuerOfPatientID=HUANCARE.{PatientName,hash}.{PatientBirthDate,hash}], deviceCoercionParam=null, otherCoercionParams={}] sendEhrcRequest(b079b6cb7457552f72bd72700902dfb8) DEVICE_CHECK_PERFORM_SAVE(PUT}) Start sendEhrcRequest(b079b6cb7457552f72bd72700902dfb8) - accesstoken: eyJhbGciOiJIUzM4NCJ9.eyJpc3MiOiJIVUFOQ0FSRS1FRlQtUEFDUyIsInR5cGUiOiI3IiwiYXV0aENvZGUiOiJmNTBmMTkxMGNiYzk0MjI5YTE3NTFhMjMxNmUzZGVjMCIsInVzZXJObyI6IjI3MjIwIiwidXNlckFjY3QiOiJkZ3lqZiIsInVzZXJOYW1lIjoi5pmP5ZCb5YekIiwiY29tbXVuaXR5Tm8iOiIiLCJob3NwaXRhbE5vIjoiOTg3IiwiaG9zcGl0YWxOYW1lIjoi5Y2X5YWF5biC6auY5Z2q5Yy656ys5LiJ5Lq65rCR5Yy76ZmiIiwiaG9zcGl0YWxUeXBlIjoiMCIsIm9mZmljZU5vIjoiMTA2MyIsIm9mZmljZU5vcyI6IjEwNjMiLCJyb29tTm8iOiI3Iiwicm9vbU5vcyI6IjciLCJtZW51VHlwZSI6IjE1IiwidXNlclR5cGUiOiIiLCJyb2xlTm8iOiIiLCJwcm92aW5jZU5vIjoiNTEwMDAwIiwiY2l0eU5vIjoiNTExMzAwIiwiY291bnR5Tm8iOiI1MTEzMDMiLCJzdWIiOiJNSURETEVXQVJFX09QRVJBVE9SIiwiZXhwIjoxNzU4MTA0MTQ4fQ.fACT1_-YLrJjpwje-fbMC4lZBiZeKI1NviCuZZYPvu-xp1PDgtqHZRWfvEIA_CF4 sendEhrcRequest(b079b6cb7457552f72bd72700902dfb8) - params: {"checkType":12,"roomNo":7,"sex":"1","isRemote":"0","studyInstanceUID":"1.2.156.112536.1.2142.15020053178095.15294846460.7","checkOfficeNo":1063,"deviceNo":7,"workstationNo":39,"doctorNo":27220,"checkDoctorNo":27220,"ageUnit":"","checkTime":"2025-09-10 18:17:20","eImaging":"1","name":"liyongshu","hospitalNo":987,"applyTime":"2025-09-10 17:21:38","dicomPatientID":"20250910-172121-B25F","age":"","officeNo":1063,"status":"1"} sendEhrcRequest(b079b6cb7457552f72bd72700902dfb8) - url: http://218.89.49.206:8224/pacs/dicom/device-check-perform-save sendEhrcRequest(b079b6cb7457552f72bd72700902dfb8) - result: {"status":0,"message":null,"data":null} sendEhrcRequest(b079b6cb7457552f72bd72700902dfb8) - DEVICE_CHECK_PERFORM_SAVE End HCARE<-mindray(3): Failed to update DB caused by com.hcare.pacs.dcm4chee.entity.exception.HttpRequestException: 数据请求处理失败 - retry sendEhrcRequest(f0be158e1272926b44e538507eafefaf) DEVICE_CHECK_PERFORM_SAVE(PUT}) Start sendEhrcRequest(f0be158e1272926b44e538507eafefaf) - accesstoken: eyJhbGciOiJIUzM4NCJ9.eyJpc3MiOiJIVUFOQ0FSRS1FRlQtUEFDUyIsInR5cGUiOiI3IiwiYXV0aENvZGUiOiJmNTBmMTkxMGNiYzk0MjI5YTE3NTFhMjMxNmUzZGVjMCIsInVzZXJObyI6IjI3MjIwIiwidXNlckFjY3QiOiJkZ3lqZiIsInVzZXJOYW1lIjoi5pmP5ZCb5YekIiwiY29tbXVuaXR5Tm8iOiIiLCJob3NwaXRhbE5vIjoiOTg3IiwiaG9zcGl0YWxOYW1lIjoi5Y2X5YWF5biC6auY5Z2q5Yy656ys5LiJ5Lq65rCR5Yy76ZmiIiwiaG9zcGl0YWxUeXBlIjoiMCIsIm9mZmljZU5vIjoiMTA2MyIsIm9mZmljZU5vcyI6IjEwNjMiLCJyb29tTm8iOiI3Iiwicm9vbU5vcyI6IjciLCJtZW51VHlwZSI6IjE1IiwidXNlclR5cGUiOiIiLCJyb2xlTm8iOiIiLCJwcm92aW5jZU5vIjoiNTEwMDAwIiwiY2l0eU5vIjoiNTExMzAwIiwiY291bnR5Tm8iOiI1MTEzMDMiLCJzdWIiOiJNSURETEVXQVJFX09QRVJBVE9SIiwiZXhwIjoxNzU4MTA0MTQ4fQ.fACT1_-YLrJjpwje-fbMC4lZBiZeKI1NviCuZZYPvu-xp1PDgtqHZRWfvEIA_CF4 sendEhrcRequest(f0be158e1272926b44e538507eafefaf) - params: {"checkType":12,"roomNo":7,"sex":"1","isRemote":"0","studyInstanceUID":"1.2.156.112536.1.2142.15020053178095.15294846460.7","checkOfficeNo":1063,"deviceNo":7,"workstationNo":39,"doctorNo":27220,"checkDoctorNo":27220,"ageUnit":"","checkTime":"2025-09-10 18:17:21","eImaging":"1","name":"liyongshu","hospitalNo":987,"applyTime":"2025-09-10 17:21:38","dicomPatientID":"20250910-172121-B25F","age":"","officeNo":1063,"status":"1"} sendEhrcRequest(f0be158e1272926b44e538507eafefaf) - url: http://218.89.49.206:8224/pacs/dicom/device-check-perform-save sendEhrcRequest(f0be158e1272926b44e538507eafefaf) - result: {"status":0,"message":null,"data":null} sendEhrcRequest(f0be158e1272926b44e538507eafefaf) - DEVICE_CHECK_PERFORM_SAVE End HCARE<-mindray(3): Failed to update DB caused by com.hcare.pacs.dcm4chee.entity.exception.HttpRequestException: 数据请求处理失败 - retry sendEhrcRequest(83cef622b629fa7720c66bb62b29d5b7) DEVICE_CHECK_PERFORM_SAVE(PUT}) Start sendEhrcRequest(83cef622b629fa7720c66bb62b29d5b7) - accesstoken: eyJhbGciOiJIUzM4NCJ9.eyJpc3MiOiJIVUFOQ0FSRS1FRlQtUEFDUyIsInR5cGUiOiI3IiwiYXV0aENvZGUiOiJmNTBmMTkxMGNiYzk0MjI5YTE3NTFhMjMxNmUzZGVjMCIsInVzZXJObyI6IjI3MjIwIiwidXNlckFjY3QiOiJkZ3lqZiIsInVzZXJOYW1lIjoi5pmP5ZCb5YekIiwiY29tbXVuaXR5Tm8iOiIiLCJob3NwaXRhbE5vIjoiOTg3IiwiaG9zcGl0YWxOYW1lIjoi5Y2X5YWF5biC6auY5Z2q5Yy656ys5LiJ5Lq65rCR5Yy76ZmiIiwiaG9zcGl0YWxUeXBlIjoiMCIsIm9mZmljZU5vIjoiMTA2MyIsIm9mZmljZU5vcyI6IjEwNjMiLCJyb29tTm8iOiI3Iiwicm9vbU5vcyI6IjciLCJtZW51VHlwZSI6IjE1IiwidXNlclR5cGUiOiIiLCJyb2xlTm8iOiIiLCJwcm92aW5jZU5vIjoiNTEwMDAwIiwiY2l0eU5vIjoiNTExMzAwIiwiY291bnR5Tm8iOiI1MTEzMDMiLCJzdWIiOiJNSURETEVXQVJFX09QRVJBVE9SIiwiZXhwIjoxNzU4MTA0MTQ4fQ.fACT1_-YLrJjpwje-fbMC4lZBiZeKI1NviCuZZYPvu-xp1PDgtqHZRWfvEIA_CF4 sendEhrcRequest(83cef622b629fa7720c66bb62b29d5b7) - params: {"checkType":12,"roomNo":7,"sex":"1","isRemote":"0","studyInstanceUID":"1.2.156.112536.1.2142.15020053178095.15294846460.7","checkOfficeNo":1063,"deviceNo":7,"workstationNo":39,"doctorNo":27220,"checkDoctorNo":27220,"ageUnit":"","checkTime":"2025-09-10 18:17:21","eImaging":"1","name":"liyongshu","hospitalNo":987,"applyTime":"2025-09-10 17:21:38","dicomPatientID":"20250910-172121-B25F","age":"","officeNo":1063,"status":"1"} sendEhrcRequest(83cef622b629fa7720c66bb62b29d5b7) - url: http://218.89.49.206:8224/pacs/dicom/device-check-perform-save sendEhrcRequest(83cef622b629fa7720c66bb62b29d5b7) - result: {"status":0,"message":null,"data":null} sendEhrcRequest(83cef622b629fa7720c66bb62b29d5b7) - DEVICE_CHECK_PERFORM_SAVE End HCARE<-mindray(3): Failed to update DB caused by com.hcare.pacs.dcm4chee.entity.exception.HttpRequestException: 数据请求处理失败 - retry sendEhrcRequest(f214f83f7773094696aa9a49b4bb441f) DEVICE_CHECK_PERFORM_SAVE(PUT}) Start sendEhrcRequest(f214f83f7773094696aa9a49b4bb441f) - accesstoken: eyJhbGciOiJIUzM4NCJ9.eyJpc3MiOiJIVUFOQ0FSRS1FRlQtUEFDUyIsInR5cGUiOiI3IiwiYXV0aENvZGUiOiJmNTBmMTkxMGNiYzk0MjI5YTE3NTFhMjMxNmUzZGVjMCIsInVzZXJObyI6IjI3MjIwIiwidXNlckFjY3QiOiJkZ3lqZiIsInVzZXJOYW1lIjoi5pmP5ZCb5YekIiwiY29tbXVuaXR5Tm8iOiIiLCJob3NwaXRhbE5vIjoiOTg3IiwiaG9zcGl0YWxOYW1lIjoi5Y2X5YWF5biC6auY5Z2q5Yy656ys5LiJ5Lq65rCR5Yy76ZmiIiwiaG9zcGl0YWxUeXBlIjoiMCIsIm9mZmljZU5vIjoiMTA2MyIsIm9mZmljZU5vcyI6IjEwNjMiLCJyb29tTm8iOiI3Iiwicm9vbU5vcyI6IjciLCJtZW51VHlwZSI6IjE1IiwidXNlclR5cGUiOiIiLCJyb2xlTm8iOiIiLCJwcm92aW5jZU5vIjoiNTEwMDAwIiwiY2l0eU5vIjoiNTExMzAwIiwiY291bnR5Tm8iOiI1MTEzMDMiLCJzdWIiOiJNSURETEVXQVJFX09QRVJBVE9SIiwiZXhwIjoxNzU4MTA0MTQ4fQ.fACT1_-YLrJjpwje-fbMC4lZBiZeKI1NviCuZZYPvu-xp1PDgtqHZRWfvEIA_CF4 sendEhrcRequest(f214f83f7773094696aa9a49b4bb441f) - params: {"checkType":12,"roomNo":7,"sex":"1","isRemote":"0","studyInstanceUID":"1.2.156.112536.1.2142.15020053178095.15294846460.7","checkOfficeNo":1063,"deviceNo":7,"workstationNo":39,"doctorNo":27220,"checkDoctorNo":27220,"ageUnit":"","checkTime":"2025-09-10 18:17:22","eImaging":"1","name":"liyongshu","hospitalNo":987,"applyTime":"2025-09-10 17:21:38","dicomPatientID":"20250910-172121-B25F","age":"","officeNo":1063,"status":"1"} sendEhrcRequest(f214f83f7773094696aa9a49b4bb441f) - url: http://218.89.49.206:8224/pacs/dicom/device-check-perform-save sendEhrcRequest(f214f83f7773094696aa9a49b4bb441f) - result: {"status":0,"message":null,"data":null} sendEhrcRequest(f214f83f7773094696aa9a49b4bb441f) - DEVICE_CHECK_PERFORM_SAVE End HCARE<-mindray(3): Failed to update DB: HCARE<-mindray(3): Unexpected Exception: HCARE<-mindray(3): processing 1:C-STORE-RQ[pcid=17, prior=0 cuid=1.2.840.10008.5.1.4.1.1.6.1 - Ultrasound Image Storage iuid=1.2.156.112536.1.2142.15020053178095.15294846850.9 - ? tsuid=1.2.840.10008.1.2.4.50 - JPEG Baseline (Process 1)] failed. Caused by: HCARE<-mindray(3) << 1:C-STORE-RSP[pcid=17, status=110H, errorComment=com.hcare.pacs.dcm4chee.entity.exception.HttpRequestException: 数 tsuid=1.2.840.10008.1.2.4.50 - JPEG Baseline (Process 1)] HCARE<-mindray(3) >> A-ABORT[source: 0 - service-user, reason: 0] HCARE<-mindray(3): close Socket[addr=/192.168.110.224,port=49767,localport=11112] 1.2.156.112536.1.2142.15020053178095.15294846850.9 handle StoreContextEvent fail, study size error: No result found for query [select st from Study st join st.patient p left join p.patientName left join st.referringPhysicianName join st.attributesBlob join p.dicomAttributesBlob where st.studyInstanceUID = ?1] start AuditScheduler.execute() finished AuditScheduler.execute() onConnectionAccepted: Connection[cn: hc-conn-arc host: localhost port: 11112 ciphers: [] installed: null ] socket: Socket[addr=/192.168.110.224,port=49768,localport=11112] Accept connection Socket[addr=/192.168.110.224,port=49768,localport=11112] HCARE<-mindray(4) >> A-ASSOCIATE-RQ HCARE<-mindray(4) << A-ASSOCIATE-AC onAssociationAccepted - association: HCARE<-mindray(4) onAssociationAccepted - applicationEntity: ApplicationEntity[title: HCARE desc: Hide instances rejected for Quality Reasons acceptor: true initiator: true installed: null Connection[cn: hc-conn-arc host: localhost port: 11112 ciphers: [] installed: null ] TransferCapability[cn: Verification SOP Class SCP role: SCP as: 1.2.840.10008.1.1 - Verification SOP Class ts: 1.2.840.10008.1.2 - Implicit VR Little Endian ] TransferCapability[cn: Patient Root Query Retrieve Information Mod...] HCARE<-mindray(4) >> 1:C-STORE-RQ[pcid=17, prior=0 cuid=1.2.840.10008.5.1.4.1.1.6.1 - Ultrasound Image Storage iuid=1.2.156.112536.1.2142.15020053178095.15294846850.9 - ? tsuid=1.2.840.10008.1.2.4.50 - JPEG Baseline (Process 1)] Association(HCARE<-mindray(4)): Process STORE PresentationContext: PresentationContext[id: 17 result: 0 - acceptance ts: 1.2.840.10008.1.2.4.50 - JPEG Baseline (Process 1) ] RQ: (0000,0002) UI [1.2.840.10008.5.1.4.1.1.6.1] AffectedSOPClassUID (0000,0100) US [1] CommandField (0000,0110) US [1] MessageID (0000,0700) US [0] Priority (0000,0800) US [1] CommandDataSetType (0000,1000) UI [1.2.156.112536.1.2142.15020053178095.15294846850.9] AffectedSOPInstanceUID RSP: (0000,0002) UI [1.2.840.10008.5.1.4.1.1.6.1] AffectedSOPClassUID (0000,0100) US [32769] CommandField (0000,0120) US [1] MessageIDBeingRespondedTo (0000,0900) US [0] Status (0000,1000) UI [1.2.156.112536.1.2142.15020053178095.15294846850.9] AffectedSOPInstanceUID Merge Attributes using ArchiveAttributeCoercion2[cn=SupplementIssuerOfPatientID, priority=0, DIMSE=C_STORE_RQ, role=SCU, cuids=[], conditions={IssuerOfPatientID!=.+}, uri=merge-attrs:, description=null, onFailure=RETHROW, sufficient=false, attributeUpdatePolicy=MERGE, mergeAttributes=[IssuerOfPatientID=HUANCARE.{PatientName,hash}.{PatientBirthDate,hash}], deviceCoercionParam=null, otherCoercionParams={}] sendEhrcRequest(80362ff5dd132e6e89772cadcefd784b) DEVICE_CHECK_PERFORM_SAVE(PUT}) Start sendEhrcRequest(80362ff5dd132e6e89772cadcefd784b) - accesstoken: eyJhbGciOiJIUzM4NCJ9.eyJpc3MiOiJIVUFOQ0FSRS1FRlQtUEFDUyIsInR5cGUiOiI3IiwiYXV0aENvZGUiOiJmNTBmMTkxMGNiYzk0MjI5YTE3NTFhMjMxNmUzZGVjMCIsInVzZXJObyI6IjI3MjIwIiwidXNlckFjY3QiOiJkZ3lqZiIsInVzZXJOYW1lIjoi5pmP5ZCb5YekIiwiY29tbXVuaXR5Tm8iOiIiLCJob3NwaXRhbE5vIjoiOTg3IiwiaG9zcGl0YWxOYW1lIjoi5Y2X5YWF5biC6auY5Z2q5Yy656ys5LiJ5Lq65rCR5Yy76ZmiIiwiaG9zcGl0YWxUeXBlIjoiMCIsIm9mZmljZU5vIjoiMTA2MyIsIm9mZmljZU5vcyI6IjEwNjMiLCJyb29tTm8iOiI3Iiwicm9vbU5vcyI6IjciLCJtZW51VHlwZSI6IjE1IiwidXNlclR5cGUiOiIiLCJyb2xlTm8iOiIiLCJwcm92aW5jZU5vIjoiNTEwMDAwIiwiY2l0eU5vIjoiNTExMzAwIiwiY291bnR5Tm8iOiI1MTEzMDMiLCJzdWIiOiJNSURETEVXQVJFX09QRVJBVE9SIiwiZXhwIjoxNzU4MTA0MTQ4fQ.fACT1_-YLrJjpwje-fbMC4lZBiZeKI1NviCuZZYPvu-xp1PDgtqHZRWfvEIA_CF4 sendEhrcRequest(80362ff5dd132e6e89772cadcefd784b) - params: {"checkType":12,"roomNo":7,"sex":"1","isRemote":"0","studyInstanceUID":"1.2.156.112536.1.2142.15020053178095.15294846460.7","checkOfficeNo":1063,"deviceNo":7,"workstationNo":39,"doctorNo":27220,"checkDoctorNo":27220,"ageUnit":"","checkTime":"2025-09-10 18:17:50","eImaging":"1","name":"liyongshu","hospitalNo":987,"applyTime":"2025-09-10 17:21:38","dicomPatientID":"20250910-172121-B25F","age":"","officeNo":1063,"status":"1"} sendEhrcRequest(80362ff5dd132e6e89772cadcefd784b) - url: http://218.89.49.206:8224/pacs/dicom/device-check-perform-save sendEhrcRequest(80362ff5dd132e6e89772cadcefd784b) - result: {"status":0,"message":null,"data":null} sendEhrcRequest(80362ff5dd132e6e89772cadcefd784b) - DEVICE_CHECK_PERFORM_SAVE End HCARE<-mindray(4): Failed to update DB caused by com.hcare.pacs.dcm4chee.entity.exception.HttpRequestException: 数据请求处理失败 - retry sendEhrcRequest(99fd18539d8662a5432f83f95cfc047f) DEVICE_CHECK_PERFORM_SAVE(PUT}) Start sendEhrcRequest(99fd18539d8662a5432f83f95cfc047f) - accesstoken: eyJhbGciOiJIUzM4NCJ9.eyJpc3MiOiJIVUFOQ0FSRS1FRlQtUEFDUyIsInR5cGUiOiI3IiwiYXV0aENvZGUiOiJmNTBmMTkxMGNiYzk0MjI5YTE3NTFhMjMxNmUzZGVjMCIsInVzZXJObyI6IjI3MjIwIiwidXNlckFjY3QiOiJkZ3lqZiIsInVzZXJOYW1lIjoi5pmP5ZCb5YekIiwiY29tbXVuaXR5Tm8iOiIiLCJob3NwaXRhbE5vIjoiOTg3IiwiaG9zcGl0YWxOYW1lIjoi5Y2X5YWF5biC6auY5Z2q5Yy656ys5LiJ5Lq65rCR5Yy76ZmiIiwiaG9zcGl0YWxUeXBlIjoiMCIsIm9mZmljZU5vIjoiMTA2MyIsIm9mZmljZU5vcyI6IjEwNjMiLCJyb29tTm8iOiI3Iiwicm9vbU5vcyI6IjciLCJtZW51VHlwZSI6IjE1IiwidXNlclR5cGUiOiIiLCJyb2xlTm8iOiIiLCJwcm92aW5jZU5vIjoiNTEwMDAwIiwiY2l0eU5vIjoiNTExMzAwIiwiY291bnR5Tm8iOiI1MTEzMDMiLCJzdWIiOiJNSURETEVXQVJFX09QRVJBVE9SIiwiZXhwIjoxNzU4MTA0MTQ4fQ.fACT1_-YLrJjpwje-fbMC4lZBiZeKI1NviCuZZYPvu-xp1PDgtqHZRWfvEIA_CF4 sendEhrcRequest(99fd18539d8662a5432f83f95cfc047f) - params: {"checkType":12,"roomNo":7,"sex":"1","isRemote":"0","studyInstanceUID":"1.2.156.112536.1.2142.15020053178095.15294846460.7","checkOfficeNo":1063,"deviceNo":7,"workstationNo":39,"doctorNo":27220,"checkDoctorNo":27220,"ageUnit":"","checkTime":"2025-09-10 18:17:50","eImaging":"1","name":"liyongshu","hospitalNo":987,"applyTime":"2025-09-10 17:21:38","dicomPatientID":"20250910-172121-B25F","age":"","officeNo":1063,"status":"1"} sendEhrcRequest(99fd18539d8662a5432f83f95cfc047f) - url: http://218.89.49.206:8224/pacs/dicom/device-check-perform-save sendEhrcRequest(99fd18539d8662a5432f83f95cfc047f) - result: {"status":0,"message":null,"data":null} sendEhrcRequest(99fd18539d8662a5432f83f95cfc047f) - DEVICE_CHECK_PERFORM_SAVE End HCARE<-mindray(4): Failed to update DB caused by com.hcare.pacs.dcm4chee.entity.exception.HttpRequestException: 数据请求处理失败 - retry sendEhrcRequest(af0f29a8b97b93ee2a62601a91442508) DEVICE_CHECK_PERFORM_SAVE(PUT}) Start sendEhrcRequest(af0f29a8b97b93ee2a62601a91442508) - accesstoken: eyJhbGciOiJIUzM4NCJ9.eyJpc3MiOiJIVUFOQ0FSRS1FRlQtUEFDUyIsInR5cGUiOiI3IiwiYXV0aENvZGUiOiJmNTBmMTkxMGNiYzk0MjI5YTE3NTFhMjMxNmUzZGVjMCIsInVzZXJObyI6IjI3MjIwIiwidXNlckFjY3QiOiJkZ3lqZiIsInVzZXJOYW1lIjoi5pmP5ZCb5YekIiwiY29tbXVuaXR5Tm8iOiIiLCJob3NwaXRhbE5vIjoiOTg3IiwiaG9zcGl0YWxOYW1lIjoi5Y2X5YWF5biC6auY5Z2q5Yy656ys5LiJ5Lq65rCR5Yy76ZmiIiwiaG9zcGl0YWxUeXBlIjoiMCIsIm9mZmljZU5vIjoiMTA2MyIsIm9mZmljZU5vcyI6IjEwNjMiLCJyb29tTm8iOiI3Iiwicm9vbU5vcyI6IjciLCJtZW51VHlwZSI6IjE1IiwidXNlclR5cGUiOiIiLCJyb2xlTm8iOiIiLCJwcm92aW5jZU5vIjoiNTEwMDAwIiwiY2l0eU5vIjoiNTExMzAwIiwiY291bnR5Tm8iOiI1MTEzMDMiLCJzdWIiOiJNSURETEVXQVJFX09QRVJBVE9SIiwiZXhwIjoxNzU4MTA0MTQ4fQ.fACT1_-YLrJjpwje-fbMC4lZBiZeKI1NviCuZZYPvu-xp1PDgtqHZRWfvEIA_CF4 sendEhrcRequest(af0f29a8b97b93ee2a62601a91442508) - params: {"checkType":12,"roomNo":7,"sex":"1","isRemote":"0","studyInstanceUID":"1.2.156.112536.1.2142.15020053178095.15294846460.7","checkOfficeNo":1063,"deviceNo":7,"workstationNo":39,"doctorNo":27220,"checkDoctorNo":27220,"ageUnit":"","checkTime":"2025-09-10 18:17:51","eImaging":"1","name":"liyongshu","hospitalNo":987,"applyTime":"2025-09-10 17:21:38","dicomPatientID":"20250910-172121-B25F","age":"","officeNo":1063,"status":"1"} sendEhrcRequest(af0f29a8b97b93ee2a62601a91442508) - url: http://218.89.49.206:8224/pacs/dicom/device-check-perform-save sendEhrcRequest(af0f29a8b97b93ee2a62601a91442508) - result: {"status":0,"message":null,"data":null} sendEhrcRequest(af0f29a8b97b93ee2a62601a91442508) - DEVICE_CHECK_PERFORM_SAVE End HCARE<-mindray(4): Failed to update DB caused by com.hcare.pacs.dcm4chee.entity.exception.HttpRequestException: 数据请求处理失败 - retry sendEhrcRequest(aff567d629610a264b3d9d5ffffddb32) DEVICE_CHECK_PERFORM_SAVE(PUT}) Start sendEhrcRequest(aff567d629610a264b3d9d5ffffddb32) - accesstoken: eyJhbGciOiJIUzM4NCJ9.eyJpc3MiOiJIVUFOQ0FSRS1FRlQtUEFDUyIsInR5cGUiOiI3IiwiYXV0aENvZGUiOiJmNTBmMTkxMGNiYzk0MjI5YTE3NTFhMjMxNmUzZGVjMCIsInVzZXJObyI6IjI3MjIwIiwidXNlckFjY3QiOiJkZ3lqZiIsInVzZXJOYW1lIjoi5pmP5ZCb5YekIiwiY29tbXVuaXR5Tm8iOiIiLCJob3NwaXRhbE5vIjoiOTg3IiwiaG9zcGl0YWxOYW1lIjoi5Y2X5YWF5biC6auY5Z2q5Yy656ys5LiJ5Lq65rCR5Yy76ZmiIiwiaG9zcGl0YWxUeXBlIjoiMCIsIm9mZmljZU5vIjoiMTA2MyIsIm9mZmljZU5vcyI6IjEwNjMiLCJyb29tTm8iOiI3Iiwicm9vbU5vcyI6IjciLCJtZW51VHlwZSI6IjE1IiwidXNlclR5cGUiOiIiLCJyb2xlTm8iOiIiLCJwcm92aW5jZU5vIjoiNTEwMDAwIiwiY2l0eU5vIjoiNTExMzAwIiwiY291bnR5Tm8iOiI1MTEzMDMiLCJzdWIiOiJNSURETEVXQVJFX09QRVJBVE9SIiwiZXhwIjoxNzU4MTA0MTQ4fQ.fACT1_-YLrJjpwje-fbMC4lZBiZeKI1NviCuZZYPvu-xp1PDgtqHZRWfvEIA_CF4 sendEhrcRequest(aff567d629610a264b3d9d5ffffddb32) - params: {"checkType":12,"roomNo":7,"sex":"1","isRemote":"0","studyInstanceUID":"1.2.156.112536.1.2142.15020053178095.15294846460.7","checkOfficeNo":1063,"deviceNo":7,"workstationNo":39,"doctorNo":27220,"checkDoctorNo":27220,"ageUnit":"","checkTime":"2025-09-10 18:17:52","eImaging":"1","name":"liyongshu","hospitalNo":987,"applyTime":"2025-09-10 17:21:38","dicomPatientID":"20250910-172121-B25F","age":"","officeNo":1063,"status":"1"} sendEhrcRequest(aff567d629610a264b3d9d5ffffddb32) - url: http://218.89.49.206:8224/pacs/dicom/device-check-perform-save sendEhrcRequest(aff567d629610a264b3d9d5ffffddb32) - result: {"status":0,"message":null,"data":null} sendEhrcRequest(aff567d629610a264b3d9d5ffffddb32) - DEVICE_CHECK_PERFORM_SAVE End HCARE<-mindray(4): Failed to update DB: HCARE<-mindray(4): Unexpected Exception: HCARE<-mindray(4): processing 1:C-STORE-RQ[pcid=17, prior=0 cuid=1.2.840.10008.5.1.4.1.1.6.1 - Ultrasound Image Storage iuid=1.2.156.112536.1.2142.15020053178095.15294846850.9 - ? tsuid=1.2.840.10008.1.2.4.50 - JPEG Baseline (Process 1)] failed. Caused by: HCARE<-mindray(4) << 1:C-STORE-RSP[pcid=17, status=110H, errorComment=com.hcare.pacs.dcm4chee.entity.exception.HttpRequestException: 数 tsuid=1.2.840.10008.1.2.4.50 - JPEG Baseline (Process 1)] 1.2.156.112536.1.2142.15020053178095.15294846850.9 handle StoreContextEvent fail, study size error: No result found for query [select st from Study st join st.patient p left join p.patientName left join st.referringPhysicianName join st.attributesBlob join p.dicomAttributesBlob where st.studyInstanceUID = ?1] HCARE<-mindray(4) >> A-ABORT[source: 0 - service-user, reason: 0] HCARE<-mindray(4): close Socket[addr=/192.168.110.224,port=49768,localport=11112]
最新发布
09-11
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值