WO2022201908A1 - 医療情報処理システムおよび方法、医療情報処理サービス提供方法ならびにプログラム - Google Patents

医療情報処理システムおよび方法、医療情報処理サービス提供方法ならびにプログラム Download PDF

Info

Publication number
WO2022201908A1
WO2022201908A1 PCT/JP2022/004575 JP2022004575W WO2022201908A1 WO 2022201908 A1 WO2022201908 A1 WO 2022201908A1 JP 2022004575 W JP2022004575 W JP 2022004575W WO 2022201908 A1 WO2022201908 A1 WO 2022201908A1
Authority
WO
WIPO (PCT)
Prior art keywords
processing
emergency
processing request
medical information
processes
Prior art date
Application number
PCT/JP2022/004575
Other languages
English (en)
French (fr)
Inventor
大暉 上原
Original Assignee
富士フイルム株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 富士フイルム株式会社 filed Critical 富士フイルム株式会社
Priority to DE112022000944.6T priority Critical patent/DE112022000944T5/de
Priority to JP2023508746A priority patent/JPWO2022201908A1/ja
Publication of WO2022201908A1 publication Critical patent/WO2022201908A1/ja
Priority to US18/460,581 priority patent/US20230409390A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16HHEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
    • G16H30/00ICT specially adapted for the handling or processing of medical images
    • G16H30/20ICT specially adapted for the handling or processing of medical images for handling medical images, e.g. DICOM, HL7 or PACS
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16HHEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
    • G16H30/00ICT specially adapted for the handling or processing of medical images
    • G16H30/40ICT specially adapted for the handling or processing of medical images for processing medical images, e.g. editing
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16HHEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
    • G16H40/00ICT specially adapted for the management or administration of healthcare resources or facilities; ICT specially adapted for the management or operation of medical equipment or devices
    • G16H40/60ICT specially adapted for the management or administration of healthcare resources or facilities; ICT specially adapted for the management or operation of medical equipment or devices for the operation of medical equipment or devices
    • G16H40/67ICT specially adapted for the management or administration of healthcare resources or facilities; ICT specially adapted for the management or operation of medical equipment or devices for the operation of medical equipment or devices for remote operation
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16HHEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
    • G16H50/00ICT specially adapted for medical diagnosis, medical simulation or medical data mining; ICT specially adapted for detecting, monitoring or modelling epidemics or pandemics
    • G16H50/20ICT specially adapted for medical diagnosis, medical simulation or medical data mining; ICT specially adapted for detecting, monitoring or modelling epidemics or pandemics for computer-aided diagnosis, e.g. based on medical expert systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances

Definitions

  • the present disclosure relates to a medical information processing system and method, a medical information processing service providing method, and a program, and in particular, receives processing requests for medical information from a plurality of medical institutions, executes processing according to the processing requests, and requests processing results.
  • the present invention relates to a computer system and information processing technology suitable for medical information processing to be restored.
  • Patent Document 2 in a computer system that executes a plurality of jobs simultaneously, a job with a low priority is stopped, and resources used by the job with a low priority are allocated to a job with a high priority for execution.
  • a job scheduling method for is disclosed.
  • Patent Document 2 proposes a method of suspending jobs with low priority and allocating computational resources to jobs with higher priority according to the priority of a group of processing requests from a client. ing.
  • Japanese Patent Application Laid-Open No. 2002-200003 does not have a mechanism for ensuring the maximum allowable waiting time of each job. Therefore, when the technology described in Patent Document 2 is applied to a medical image analysis processing service, for example, a job with a low priority is a processing request for normal medical care, and a job with a high priority is a processing request for an emergency system.
  • Patent Document 2 If it is a request, if a large number of emergency system processing requests are sent from the client in succession, there is a possibility that the processing of the normal medical care system will be kept waiting beyond the allowable maximum waiting time. affect. Therefore, the mechanism described in Patent Document 2 is not suitable for medical processing.
  • a server dedicated to processing emergency services with a high degree of urgency may be prepared, and emergency processing requests may be sent to this server dedicated to emergency processing. be done.
  • emergency processing is often required sporadically, and if a dedicated server for emergencies is maintained at all times, a situation arises in which the secured computational resources are surplus. , it is not desirable because the operation cost is generated unnecessarily and the service usage fee becomes high as a result.
  • Another possible solution is to launch a virtual machine for high-urgency processing as soon as a high-urgency processing request occurs. However, it usually takes several minutes to start up a virtual machine, which is not desirable for emergency medical sites where time is of the essence.
  • the present disclosure has been made in view of such circumstances, and allows for both emergency processing with a high degree of urgency and non-emergency processing with a low degree of urgency while minimizing the operating costs of servers and the like. It is an object of the present invention to provide a medical information processing system and method, a medical information service providing method, and a program capable of providing processing results within a possible waiting time.
  • a medical information processing system is a medical information processing system that receives medical information to be processed and a processing request, executes processing in accordance with the processing request, and outputs a processing result.
  • a server cluster configured using virtual machines is provided, and the server cluster receives a processing request, the processing request is a non-emergency processing request for processing classified as non-emergency, or the processing is classified as emergency.
  • a first control unit that sorts a processing request into a non-emergency processing request queue or an emergency processing request queue depending on whether it is an emergency processing request;
  • a non-emergency processing module that performs non-emergency processing corresponding to the instructions of non-emergency processing requests stacked in the request queue, and an emergency processing module that monitors the emergency processing request queue and stacks emergency processing requests in the emergency processing request queue Based on the number of emergency system processing requests received by the first control unit and the number of emergency system processing modules in operation, the emergency system processing module performs emergency system processing corresponding to the instruction content of the system processing request.
  • a second control unit for controlling the number of non-emergency processing modules and the number of emergency processing modules to be operated, and the control by the second control unit controls the number of non-emergency processing modules in operation , and newly activate emergency system processing modules to increase the number of emergency system processing modules.
  • the non-emergency processing modules to be temporarily stopped are some of the processing modules, and some of the other non-emergency processing modules are maintained in an operating state.
  • the second control unit based on the number of emergency system processing requests received by the first control unit and the number of operating emergency system processing modules, calculating a first processing wait time until processing completion for a processing request, and if the first processing wait time exceeds a first allowable wait time, reduce the first processing wait time within the first allowable wait time
  • a configuration may be employed in which the number of emergency system processing modules is increased in order to accommodate this.
  • the second control unit controls non-emergency processing within a range in which a second waiting time until processing completion for a non-emergency processing request is within a second allowable waiting time.
  • a configuration in which the upper limit of the number of system processing modules that can be suspended is dynamically calculated, the non-emergency system processing modules that do not exceed the upper limit are suspended, and the emergency system processing module is newly activated instead. good too.
  • the second control unit increases the number of virtual machines in order to increase the number of emergency system processing modules, and performs a plurality of emergency procedures on the added virtual machines.
  • the system processing module may be newly activated.
  • the second control unit when a state in which the number of emergency system processing modules waiting for processing is equal to or greater than a specified number is maintained for a specified time or longer, causes the emergency system A configuration that reduces the number of processing modules may be used.
  • the second control unit maintains a state in which the number of emergency system processing modules waiting for processing is equal to or greater than a first specified number for a first specified time or longer.
  • the non-emergency processing modules may be suspended, the number of added emergency processing modules may be reduced, and the temporarily suspended non-emergency processing modules may be resumed.
  • the second control unit maintains a state in which the number of emergency system processing modules waiting for processing is equal to or greater than a second specified number for a second specified time or longer.
  • the number of emergency system processing modules on the added virtual machines may be reduced, and the number of added virtual machines may be reduced.
  • the second control unit maintains a state in which the number of emergency system processing modules waiting for processing is equal to or greater than a first specified number for a first specified time or longer.
  • the number of emergency system processing modules on the added virtual machines may be reduced, and the number of added virtual machines may be reduced.
  • the server cluster calculates the current processing waiting time when the processing request is received for each of the non-emergency processing request and the emergency processing request, Information on processing waiting time may be configured to be provided to a user terminal of a medical institution.
  • the maximum waiting time until processing completion for non-emergency processing requests is the third waiting time
  • the maximum waiting time until processing completion for emergency processing requests is a fourth wait time that is shorter than the third wait time
  • a maximum wait time to complete processing for non-emergency processing requests and a maximum wait time to complete processing for emergency processing requests is a second plan that promises that at least one of the wait times is less than the maximum wait time of the first plan
  • the server cluster is provided to medical institutions that have selected the first plan.
  • the non-emergency processing module, emergency processing module, and virtual machine for the first plan assigned to process requests from It may be a configuration comprising a non-emergency processing module, an emergency processing module, and a virtual machine for the second plan.
  • non-emergency processing module, emergency processing module and virtual machine for the first plan may also be used to process processing requests from medical institutions that have selected the second plan.
  • the server cluster adjusts the number of non-emergency processing modules for the second plan, the number of emergency
  • the number of system processing modules and the number of virtual machines may be increased or decreased.
  • a medical information processing system is a medical information processing system that receives medical information to be processed and a processing request, executes processing according to the processing request, and outputs a processing result, comprising: It comprises one or more processors and one or more storage devices for storing programs executed by one or more processors, and one or more processors are configured using a plurality of virtual machines according to instructions of the programs. Acting as a server cluster, a process executed by the server cluster receives a process request, either a non-emergency process request for a process classified as non-emergency, or an emergency process request for a process classified as emergency.
  • Processing request distribution control that distributes processing requests to non-emergency processing request queues or emergency processing request queues according to whether they are system processing requests. Processing as a non-emergency processing module that performs non-emergency processing corresponding to the instructions of the stacked non-emergency processing requests Based on the number of emergency system processing requests received by the server cluster and the number of operating emergency system processing modules computing resource usage control for controlling the number of non-emergency processing modules to be activated and the number of emergency processing modules, wherein the computing resource usage control controls one of the plurality of non-emergency processing modules in operation; It includes a process of pausing the unit and newly activating emergency system processing modules to increase the number of emergency system processing modules.
  • a medical information processing service providing method is a medical information processing service providing method implemented using the medical information processing system of the present disclosure, wherein a server cluster includes a plurality of It includes receiving a processing request from a medical institution, and executing processing corresponding to the processing request by the server cluster and returning the processing result to the medical institution that requested the processing request.
  • a medical information processing method in which a computer receives medical information to be processed and a processing request, performs processing according to the processing request, and outputs the processing result.
  • a computer-executed medical information processing method comprising configuring a server cluster using a plurality of virtual machines built on a computer, and receiving a processing request, wherein the server cluster classifies the processing request as non-emergency. Processing requests are sorted into non-emergency processing request queues or emergency processing request queues depending on whether they are non-emergency processing requests that require processing to be performed or emergency processing requests that request processing classified as emergency.
  • a non-emergency system that performs a first control, monitors a non-emergency processing request queue, and performs non-emergency processing corresponding to the instruction content of the non-emergency processing request stacked in the non-emergency processing request queue. It performs processing as a processing module, and as an emergency processing module that monitors the emergency processing request queue and performs emergency processing corresponding to the instruction contents of the emergency processing request stacked in the emergency processing request queue. Control the number of active non-emergency processing modules and emergency processing modules based on the number of emergency processing requests received by the server cluster and the number of active emergency processing modules.
  • the second control includes stopping some of the plurality of non-emergency processing modules in operation and newly activating the emergency processing module This includes increasing the number of emergency processing modules.
  • a program according to another aspect of the present disclosure is a program for causing a computer to implement a process of receiving medical information to be processed and a processing request, executing a process according to the processing request, and outputting a processing result.
  • a non-emergency processing request that configures a server cluster using a plurality of virtual machines built on a computer, receives a processing request on the server cluster, and requests processing that is classified as non-emergency.
  • a first control function for sorting a processing request into a non-emergency processing request queue or an emergency processing request queue according to whether it is an emergency processing request requiring processing classified as emergency;
  • the function of the non-emergency processing module that monitors the queue and performs non-emergency processing corresponding to the instructions of the non-emergency processing requests stacked in the non-emergency processing request queue and the emergency processing request queue are monitored.
  • the function of the emergency system processing module that performs emergency system processing corresponding to the instruction contents of the emergency system processing request stacked in the emergency system processing request queue, and the response of the emergency system processing request received by the server cluster by the first control function.
  • the function is a program including a function of stopping some of the plurality of non-emergency processing modules in operation and newly activating emergency processing modules to increase the number of emergency processing modules.
  • FIG. 1 is a block diagram showing the configuration of a medical information processing system according to an embodiment.
  • FIG. 2 is a block diagram showing an overview of the operation of the medical information processing system according to the embodiment, and shows an example in which there is no emergency system processing request and there are only normal plan subscribers.
  • FIG. 3 is a block diagram showing an overview of the operation of the medical information processing system according to the embodiment, and is an example in which there is an emergency system processing request, there is no calculation server increase processing, and there are only regular plan subscribers.
  • FIG. 4 is a block diagram showing an outline of the operation of the medical information processing system according to the embodiment, and is an example in which there is an emergency system processing request, there is processing for increasing the number of calculation servers, and there are only regular plan subscribers. indicates FIG.
  • FIG. 5 is a block diagram showing an outline of the operation of the medical information processing system according to the embodiment, and is an example in which there is an emergency system processing request, there is processing for increasing the number of calculation servers, and there is a high-speed plan subscriber.
  • FIG. 6 is a block diagram showing an example of an intra-medical institution information system for a plurality of medical institutions that use the medical information processing system.
  • FIG. 7 is a flow chart showing an example of a medical information processing method executed by the medical information processing system according to the embodiment.
  • FIG. 8 is a flow chart showing an example of a subroutine applied to step S20 of FIG.
  • FIG. 9 is a flowchart showing an example of control for reducing the number of emergency system processing modules in response to a decrease in demand for emergency system processing requests.
  • FIG. 10 is a block diagram showing an example of the hardware configuration of a computer.
  • FIG. 1 is a block diagram showing the configuration of a medical information processing system 10 according to an embodiment.
  • the medical information processing system 10 receives medical information to be processed, such as medical images, and processing requests for the medical information from a plurality of medical institutions via a communication line 20, and executes processing according to the processing requests.
  • a computer system that includes a medical processing server cluster that provides a web service that returns results to a requesting medical institution.
  • a system that provides a medical image processing service is exemplified, but the medical information to be processed is not limited to medical images. medical data, or a combination of multiple types of data.
  • Medical processing refers to application-related processing for medical devices that can be categorized as an emergency system or a normal system other than an emergency system.
  • the term "normal” is synonymous with "non-emergency”.
  • Medical processing includes, for example, medical image processing for detecting, segmenting, or labeling lesions by processing medical images captured using medical equipment such as a CT device or an MRI device.
  • Medical system processing is an example of medical information processing, and medical images are an example of medical information.
  • the communication line 20 may be a wide area network including the Internet.
  • "Medical Institution 1", “Medical Institution 2", ..., “Medical Institution L” shown in FIG. 1 indicate that there are L medical institutions.
  • Medical institutions include, for example, hospitals, clinics, medical research centers, and medical checkup centers.
  • an index for identifying each medical institution is set to j, and is written as medical institution MIj.
  • Each medical institution MIj has a medical institution network, and one or more use terminals 30 are connected to each medical institution network for each medical institution MIj.
  • the user terminal 30 is an information processing device existing in the network within each medical institution, and is a terminal for using the processing service provided by the medical processing server cluster of the medical information processing system 10 .
  • the utilization terminal 30 refers to a computing resource existing within a network that can safely access data within the medical institution, and the utilization terminal 30 does not have to physically exist within the medical institution.
  • the utilization terminal 30 may be a physical machine or a virtual machine, and its specific form is not limited.
  • the utilization terminal 30 may be a workstation, a personal computer, a tablet terminal, or the like.
  • Client software for using the processing functions of the medical information processing system 10 is built in the user terminal 30 .
  • the client software may be of any form as long as it can use the image processing service provided by the medical processing server cluster of the medical information processing system 10 .
  • the client software may be a dedicated application or a general-purpose web browser.
  • the medical processing server cluster that functions as the medical information processing system 10 is configured using virtual machines.
  • the deployment destination of this virtual machine may be any environment capable of hosting a group of virtual machines, such as a cloud computing environment.
  • FIG. 1 shows a virtual machine cluster including a plurality of virtual machines VM0, VM1, VM2 . . . VMk .
  • an index for identifying each virtual machine is set to k, and is expressed as a virtual machine VMk.
  • k is an integer of 0 or more.
  • the number of virtual machines can be increased or decreased as needed.
  • a virtual machine cluster may be constructed on one physical machine or may be constructed on a plurality of physical machines.
  • a processing request distribution control unit 102 and a computational resource usage control unit 104 necessary for providing a medical image processing web service are placed on this cluster, A normal system processing request queue 106, an emergency system processing request queue 108, a normal system processing module NM, and an emergency system processing module EM are deployed.
  • the emergency processing module EM has only been installed with the configuration necessary for its activation, and is activated. itself has not been.
  • the processing request distribution control unit 102 receives processing requests from the user terminals 30 of each medical institution MIj, and distributes the processing requests to the normal processing request queue 106 or the emergency processing request queue 108 according to the type of the processing request. . That is, the processing request distribution control unit 102 determines whether the received processing request is a processing request requesting normal processing or a processing request requesting emergency processing. Then, the processing request is sent to the normal processing request queue 106 or emergency processing request queue 108 .
  • the normal processing request queue 106 is a queue that temporarily stores (stacks) processing requests other than emergency processing requests.
  • the emergency processing request queue 108 is a queue that temporarily stores emergency processing requests.
  • an emergency system processing request with a high degree of urgency from an emergency site, etc. is referred to as an "emergency system processing request", and a normal system processing request with a low degree of urgency, such as an examination in normal medical care, is referred to as a "normal system processing request”.
  • Urgency may be rephrased as "priority”.
  • a processing request issued from the user terminal 30 is classified into either a normal processing request or an emergency processing request.
  • the emergency system processing corresponding to the emergency system processing request is called “emergency system processing”
  • the normal system processing corresponding to the normal system processing request is called "normal system processing”.
  • the processing contents of the emergency system processing and the processing contents of the normal system processing may be different.
  • normal system processing includes lung CAD processing
  • emergency system processing includes pneumothorax region detection processing, cerebral infarction detection processing, or cerebral hemorrhage detection processing.
  • the computational resource usage control unit 104 determines the type of processing request sent to the processing request distribution control unit 102, and the processing request queues of the normal processing request queue 106 and the emergency processing request queue 108. Monitor the number of processing requests, and suspend the normal processing module NM in operation, additionally activate the emergency processing module EM, and add a computing node according to the request status and processing status of the emergency system processing request. etc. to control.
  • a computing node here is a computing server using a virtual machine.
  • a processing request distribution control unit 102, a computing resource usage control unit 104, a normal processing request queue 106, and an emergency processing request queue 108 are deployed in a virtual machine VM0, and virtual machines VM1, VM2, . . . . show an example of deploying the normal system processing module NM and/or the emergency system processing module EM.
  • the normal system processing module NM is a processing module that performs normal system medical image processing.
  • the display of "normal system processing module 1", "normal system processing module 2", ..., "normal system processing module N" shown in Fig. 1 means that N normal system processing modules are deployed in each computation node. is shown.
  • the emergency system processing module EM is a processing module that performs emergency medical image processing. Although only “emergency system processing module 1" is shown in FIG. 1, a plurality of emergency system processing modules EM can be deployed in each computing node depending on the request status and processing status of emergency system processing requests.
  • Each of the normal system processing module NM and the emergency system processing module EM monitors the corresponding processing request queue, and upon receiving an execution instruction, performs processing according to the execution instruction.
  • the normal system processing module NM performs normal system processing corresponding to the instruction contents of the normal system processing requests stacked in the normal system processing request queue 106 .
  • the emergency system processing module EM performs emergency system processing corresponding to the instruction contents of the emergency system processing requests stacked in the emergency system processing request queue 108 .
  • a normal plan and a high-speed plan are prepared for the medical image processing service provided using the medical information processing system 10 .
  • the normal plan is a type of plan that uses services that use the medical information processing system 10, and because computational resources are shared among more medical institutions than the high-speed plan, which will be described later, the usage fee is lower than the high-speed plan.
  • This plan has a long maximum waiting time from issuing a processing request to completing processing (until processing results are received).
  • the high-speed plan is a type of plan for using services that use the medical information processing system 10.
  • the usage fee is higher than the normal plan, but the maximum waiting time from issuing a processing request to completing the processing is short. is the plan.
  • the maximum waiting time for normal processing is 10 minutes
  • the maximum waiting time for emergency processing is 3 minutes.
  • the maximum waiting time for processing is set in the contract, such as one minute.
  • Each of the maximum waiting time of 3 minutes for emergency processing defined in the normal plan and the maximum waiting time of 1 minute for emergency processing defined in the high-speed plan is an example of the "first allowable waiting time” in the present disclosure.
  • Each of the maximum waiting time of 10 minutes for normal processing defined in the normal plan and the maximum waiting time of 3 minutes for normal processing defined in the high-speed plan is an example of the "second allowable waiting time” in the present disclosure.
  • the maximum waiting time of 10 minutes for normal processing and the maximum waiting time of 3 minutes for emergency processing defined in the normal plan are examples of "third waiting time” and "fourth waiting time” in the present disclosure. be.
  • the maximum waiting time for each of the normal processing and the emergency processing in the high-speed plan is shorter than the maximum waiting time for each of the normal plans. It is sufficient if one of the maximum waiting times is set shorter than that of the normal plan.
  • Each medical institution MIj can use the medical image processing service provided by the medical information processing system 10 by selecting either a normal plan or a high-speed plan and concluding a usage contract with the provider of this service. can be done.
  • a normal plan is an example of a "first plan” in the present disclosure.
  • a high-speed plan is an example of a "second plan” in this disclosure.
  • FIG. 2 is a block diagram showing an overview of the operation of the medical information processing system 10 according to the embodiment.
  • FIG. 2 shows an example in which no emergency system processing request has been sent from any medical institution MIj. It is a diagram showing a series of flows when operating on a server and only normal system processing requests are being processed inside the medical system processing server cluster.
  • each medical institution MIj is subscribed to a normal plan.
  • Normal Plan Server 1 "Normal Plan Server 2", ..., “Normal Plan Server M” shown in FIG. Represents a shared server.
  • Each of the M calculation servers is denoted as calculation servers NPS1, NPS2, . . . , NPSM.
  • N normal system processing modules NM are operating in each calculation server NSPk. Note that the processing module group of the N normal processing modules NM may include processing modules that execute different types of processing. Also, the combination of types of processing modules deployed on different calculation servers may be the same or may be different.
  • Procedure [1] the user uses the client software for using this system installed on the user terminal 30 to issue a medical image processing request to the medical information processing system 10. I do. At this time, it is up to the user to determine whether the processing request transmitted from the user terminal 30 is a processing request relating to a normal examination or the like (normal processing request) or a processing request relating to an emergency site examination or the like (emergency processing request). This may be done by the operator specifying the type of the processing request, or may be done programmatically using the type of client software used or the like. In the example of FIG. 2, the explanation will proceed on the assumption that only the normal processing request has been sent.
  • normal processing request a processing request relating to a normal examination or the like
  • an emergency site examination or the like emergency site examination or the like
  • Procedure [2] In procedure [2], the processing request sent from the user terminal 30 to the medical information processing system 10 is first received by the processing request distribution control unit 102, and the content of the request is interpreted.
  • Procedure [3] Procedure [3] in FIG.
  • the computational resource usage control unit 104 activates its function when it receives an emergency system processing request shown in FIGS. 3 and 4, which will be described later. is not particularly working.
  • Procedure [4] In procedure [4], the processing request distribution control unit 102 stores the processing request in the queue (normal processing request queue 106 or emergency processing request queue 108) corresponding to the type of processing request received. Send content.
  • the queue may be a message queue, a relational database, or the like, as long as it can be temporarily stored until a certain processing request is processed by the processing module, and its form does not matter.
  • the processing request distribution control unit 102 stacks processing requests in corresponding queues according to normal processing requests or emergency processing requests.
  • Procedure [5] In procedure [5], the normal system processing module NMn receives the normal system process request from the normal system process request queue 106 . As for this receiving method, if the normal system processing module NMn is implemented so that it can start processing when there is a new processing request in the normal system processing request queue 106, the implementation method does not matter. Note that the suffix n in the notation of the normal processing module NMn is an index for identifying the normal processing module activated on the calculation server. In the example of FIG. 2, n represents an integer from 1 to N.
  • the normal system processing module NM in charge of normal system processing acquires a processing request from the normal system processing request queue 106 and processes it.
  • the maximum number of processing modules activated on each calculation server is determined by the number of CPUs and the amount of memory that must be allocated to each processing module, and the upper limit of the number of CPU cores and the amount of memory of each calculation server. be. This does not depend on the type of processing module, such as whether the processing module activated on the calculation server is the normal processing module NM or the emergency processing module EM.
  • FIG. 2 shows an example in which the maximum number of processing modules activated on each calculation server is N. In FIG. It should be noted that the maximum number of processing modules activated on a calculation server may be different for each server.
  • Procedure 7 In Procedure 7, the user terminal 30, which is the sender (requester) of the processing request, acquires the processing result from the medical information processing system 10. Each user terminal 30 may periodically inquire of the medical processing server cluster whether or not the processing result can be obtained, and if the processing result can be obtained, start obtaining the result from the medical processing server cluster. The system processing server cluster side may notify the use terminal 30 that the result can be obtained, and the use terminal 30 may start obtaining the result upon receiving the notification. The user of the utilization terminal 30 can browse the analysis result as soon as the utilization terminal 30 acquires the analysis result.
  • the minimum number of calculation servers that the medical information processing system 10 according to this embodiment normally operates is determined by the number of medical institutions under contract and the maximum normal processing of each medical institution expected during peak hours. Considering the number of requests and the maximum allowable waiting time until processing completion for normal system processing requests at peak time, the necessary and sufficient number of units is obtained and adopted as the minimum value.
  • M of the number of servers for the normal plan (M units) shown in FIG. 2 represents the minimum value obtained from this point of view. indicates that
  • M calculation servers need to be operated only during normal outpatient examination reception hours (regular medical service hours) of medical institutions, for example, 8:00 to 18:00 during the day, and other times.
  • the number of constantly operating machines may be smaller than the number of M machines during the time period.
  • FIG. 3 unlike FIG. 4, which will be described later, the number of emergency system processing requests is smaller than the number that can be processed by the M calculation servers of the medical system processing server cluster, so it is necessary to add the M+1th calculation server. It represents a situation where there is no
  • FIG. 4 shows a case where the number of emergency system processing modules EM that can be activated by M calculation servers cannot handle the emergency system processing requests. , represents a series of system operations when increasing the processing capacity for emergency system processing requests.
  • an emergency system processing request is transmitted from the user terminal 30 mixed with the normal system processing request.
  • the normal system processing request and emergency system processing request transmitted from the user terminal 30 are received by the processing request distribution control unit 102 (procedure [2]).
  • the computational resource usage control unit 104 monitors the processing request distribution control unit 102 . At the same time when the processing request distribution control unit 102 receives the emergency processing request, the computing resource usage control unit 104 performs the following operations.
  • the computing resource usage control unit 104 distributes some of the normal processing modules NM in operation. is suspended and the emergency system processing module EM is activated instead.
  • the normal system processing module NM filled with a dot pattern indicates that it is a temporarily stopped processing module (the same applies to FIGS. 4 and 5).
  • the emergency system processing module EM may be kept on standby at all times as long as it does not burden the operating costs. For example, like the M-th normal plan server NPSM in FIG. Although the operation cost is more than necessary, if the emergency system processing module EM and the normal system processing module NM are shared on the same server as the normal plan server NPS2, a small number of emergency system processing modules EM can be used at all times. Waiting may also be acceptable from an operational cost standpoint.
  • the threshold for increasing the number of emergency system processing modules EM is, for example, dynamically obtaining the processing waiting time from the number of received processing requests and the number of currently operating emergency system processing modules EM, When the maximum allowable waiting time is exceeded.
  • Suspension of the normal system processing module NM in operation may be achieved by using a process suspension mechanism provided by Linux (registered trademark) or Windows (registered trademark) OS (Operating System) or the like.
  • a process suspension mechanism provided by Linux (registered trademark) or Windows (registered trademark) OS (Operating System) or the like.
  • Linux registered trademark
  • Windows registered trademark
  • OS Operating System
  • the computational resource usage control unit 104 sets an upper limit to the number of normal system processing modules NM that can be suspended. This is to prevent the processing of normal processing requests from being made to wait longer than the maximum allowable waiting time due to the suspension of most of the normal processing modules when a large number of emergency processing requests are made. be.
  • the method of determining the upper limit of the number of normal system processing modules NM that can be temporarily stopped is as follows. Measure in advance the value of how many minutes it will take for the request to be processed and obtain it statistically, and determine how many minutes the dwell time agreed with the medical institution in advance is acceptable. By giving the maximum allowable waiting time to the computational resource usage control unit 104 as a set value, the computational resource usage control unit 104 dynamically determines it. In other words, the computational resource usage control unit 104 suspends the normal processing module NM within a range in which the waiting time (an example of the “second waiting time”) until the completion of processing for the normal processing request is within the maximum allowable waiting time. Dynamically compute the upper bound on the possible number.
  • the computational resource usage control unit 104 Even if the computational resource usage control unit 104 temporarily suspends the normal system processing modules NM up to the maximum number that can be temporarily suspended, and instead activates a plurality of emergency system processing modules EM, it waits until the completion of processing for the emergency system processing request. When the time is expected to exceed the maximum allowable waiting time, the computational resource usage control unit 104 activates the M+1th computation server, as shown in FIG. Start the system processing module EM.
  • the number of emergency system processing modules activated by the M+1-th server is the maximum number of emergency system processing modules EM that can be activated by the added calculation server M+1.
  • the process of suspending and activating a processing module is completed in several seconds to several tens of seconds at the longest, but additional activation of a calculation server requires several minutes because the OS needs to be activated. Therefore, it is desirable to start the operation of adding the calculation server before the number of operating emergency system processing modules EM becomes insufficient. Therefore, it is desirable that the threshold for starting the additional operation of the calculation server is set to an index such as the rate of increase in the number of emergency system processing requests, and the threshold is set so that the additional processing of the calculation server can be performed with a margin.
  • FIG. 4 as an example, an example of adding one M+1 calculation server was given. The number of servers may be increased.
  • the suspended normal processing module NM has priority over other processing requests waiting for processing in the normal processing request queue 106 as soon as the processing of other normal processing modules NM in operation is completed. to resume processing.
  • a method for resuming processing a method such as arranging the suspended processing at the head of the normal processing request queue 106 at the time of suspension can be considered.
  • the processing request distribution control unit 102 puts the received processing request into the normal processing request queue 106 or the emergency processing request queue 108 according to the type of the received processing request. Distribute.
  • the normal system processing module NM and the emergency system processing module EM receive corresponding processing requests from the normal system processing request queue 106 or the emergency system processing request queue 108, respectively.
  • the normal system processing module NM that has received the normal system processing request from the normal system processing request queue 106 and the emergency system processing module EM that has received the emergency system processing request from the emergency system processing request queue 108 perform the procedure [6]. perform the necessary processing corresponding to the processing request of In the example of FIG. 2, the normal system processing module NM in charge of normal system processing acquires a processing request from the normal system processing request queue 106 and processes it.
  • each user terminal 30 acquires the processing result from the medical processing server cluster.
  • Each user terminal 30 periodically inquires of the medical processing server cluster whether or not the processing result can be acquired, and if the result can be acquired, the result acquisition may be started from the medical processing server cluster.
  • the server cluster side may notify the utilization terminal that the result can be obtained, and the utilization terminal may start obtaining the result upon receiving the notification.
  • the terminal user browses the analysis results as soon as they are acquired by the terminal.
  • FIGS. 3 and 4 have described how the medical information processing system 10 operates to increase the processing capacity for emergency processing requests in response to an increase in demand for emergency processing requests.
  • the operation of this system in response to a decrease in demand for emergency system processing requests will be described below. It should be noted that the system behavior in response to a decrease in demand for emergency processing requests has many overlaps with FIGS. 2 to 4 regarding the system behavior in response to an increase in demand described in FIGS.
  • the computational resource usage control unit 104 which monitors the processing request distribution control unit 102, detects that there is an emergency processing module EM waiting for processing when the number of received emergency processing requests decreases.
  • the computing resource usage control unit 104 may acquire information indicating the operational status of the emergency system processing module EM in each computing server.
  • the computational resource usage control unit 104 starts an operation to reduce the amount of computational resources allocated to the emergency system processing modules EM. .
  • the system operation at that time will be described below.
  • conditions such as the specified number of "number” of the emergency system processing modules EM waiting for processing, and the specified number of "fixed time” as conditions for starting the operation of reducing the allocation of computational resources to the emergency system processing modules EM. can be set externally.
  • the computational resource usage control unit 104 increases the processing capacity for the normal system processing request. give priority to recovering Taking FIG. 4 as an example, among the emergency system processing modules EM that are started up in each calculation server of the normal plan servers NPS2 to NPSM shown in FIG. Instead of the stopped emergency system processing module EM, the normal system processing module NM is started up, and the state of FIG. 1 is approached.
  • the emergency system processing modules EM started up on the calculation servers NPS2 to NPSM all replaced with the normal system processing modules NM, the emergency system processing modules EM waiting for processing are transferred to the calculation servers NPSM+1, NPSM+2, . , as soon as the number of emergency system processing modules EM waiting for processing exceeds N (the maximum number of emergency system processing modules that can be started up on each calculation server), the N M+1 and subsequent calculation servers are stopped one by one in units of .
  • Example of system behavior when a high-speed plan subscriber uses this system FIG. An example is shown with the addition of a server for "High-speed plan server 1", . . . , "high-speed plan server R" shown in FIG.
  • Each of the R calculation servers is denoted as calculation servers HPS1, . . . HPSR.
  • the calculation servers HPS1, . . . HPSR as high-speed plan servers are configured using virtual machines.
  • the number R of high-speed plan servers like the number M of normal plan servers, is determined so as to realize the maximum allowable waiting time promised in the high-speed plan.
  • the user terminal 30 displays the estimated waiting time until the completion of processing of both the normal processing request and the emergency processing request, regardless of whether the user is a normal plan subscriber or a high-speed plan subscriber.
  • This estimated waiting time is determined in advance by the number of processing requests waiting to be processed in the normal processing request queue 106 and the emergency processing request queue 108 and the number of processing modules in operation. It is calculated based on the measured value and statistically obtained. Information on the calculated estimated waiting time is made available to each user terminal 30 from the medical system processing server cluster.
  • the user of each medical institution can check the estimated waiting time displayed on the user terminal 30 and use it as a reference for deciding whether or not they want to be able to process faster.
  • Fig. 5 shows that medical institution L has signed up for a high-speed plan.
  • Information on the high-speed plan contracted by the medical institution L is transmitted from the user terminal to the medical system processing server cluster.
  • the computational resource usage control unit 104 that received the information activates the high-speed plan server HPS, and the additional computation servers (high-speed plan servers HPs1, . . . HPSR) for the high-speed plan subscriber medical institution L be assigned.
  • FIG. 5 shows an example in which medical institution L subscribes to a high-speed plan, but multiple medical institutions can be high-speed plan subscribers.
  • the high-speed plan servers HPS1, ... HPSR can be shared by multiple medical institutions that have contracted high-speed plans.
  • the upper limit of the number of medical institutions that can share the high-speed plan server is a number within a range that does not exceed the maximum allowable waiting time agreed at the time of contract for the high-speed plan. If the number of medical institutions exceeding this upper limit subscribes to the high-speed plan, the computational resource usage control unit 104 activates additional high-speed plan servers HPSR+1, HPSR+2, . . .
  • the high-speed plan server is positioned to add processing capacity to the processing capacity when using the normal plan server, and high-speed plan subscribers can also be assigned processing modules on the normal plan server. desirable. This is because the smaller the number of medical institutions that share the calculation server, the greater the server operating costs that one medical institution must bear, resulting in higher service usage fees.
  • the number R of high-speed plan servers always prepared by the computational resource usage control unit 104 is currently contracted for the high-speed plan in order to complete processing within the maximum allowable waiting time for normal processing promised in the high-speed plan. is determined by dynamically determining the number of calculation servers that should be prepared in addition to the normal plan server for the number of medical institutions. Therefore, according to the increase or decrease in the number of high-speed plan subscribers, the number of constantly operating high-speed plan servers HPS also increases or decreases.
  • the medical information processing system 10 When an emergency processing request is sent from a high-speed plan subscriber mixed with a normal processing request, the medical information processing system 10 follows the flow of processing described with reference to FIGS.
  • the number of emergency system processing modules EM and the number of calculation servers are increased or decreased according to demand.
  • a medical processing server cluster configured using virtual machines VMk is an example of a "server cluster" in the present disclosure.
  • the processing request distribution control unit 102 is an example of the "first control unit” in the present disclosure.
  • the processing performed by the processing request distribution control unit 102 is an example of “processing request distribution control” and “first control” in the present disclosure.
  • the function of the processing request distribution control unit 102 is an example of the "first control function" in the present disclosure.
  • the computational resource usage control unit 104 is an example of the “second control unit” in the present disclosure, and the processing performed by the computational resource usage control unit 104 is the “computational resource usage control” and the “second control” in the present disclosure.
  • the function of the computational resource usage control unit 104 is an example of the "second control function" in the present disclosure.
  • the normal processing request is an example of a "non-emergency processing request" in this disclosure, and the normal processing request queue 106 is an example of a “non-emergency processing request queue” in this disclosure.
  • the normal system processing module NM is an example of the "non-emergency system processing module" in the present disclosure.
  • FIG. 6 is a block diagram showing an example of an intra-medical institution information system 300 of a plurality of medical institutions that use the processing service of the medical information processing system 10. As shown in FIG. FIG. 6 shows an example in which a medical institution information system 300 with a similar system configuration is built in each medical institution network in a plurality of medical institutions for the sake of simplicity of illustration. A system configuration may be employed.
  • the medical institution information system 300 includes a modality 340, a DICOM (Digital Imaging and Communications in Medicine) server 350, an image processing management terminal 320A, a viewer terminal 322, an electronic chart system 324, and a local communication line 326.
  • DICOM Digital Imaging and Communications in Medicine
  • a computer network includes a modality 340, a DICOM (Digital Imaging and Communications in Medicine) server 350, an image processing management terminal 320A, a viewer terminal 322, an electronic chart system 324, and a local communication line 326.
  • DICOM Digital Imaging and Communications in Medicine
  • the modality 340 is a device that captures inspection images.
  • the modality 340 includes a device that captures an image of a part of a subject to be inspected, generates an inspection image that represents the part, adds incidental information defined by the DICOM standard to the image, and outputs the image.
  • Specific examples of the modality 340 include a CT device (Computed Tomography), an MRI device (magnetic resonance imaging), an angiographic X-ray diagnostic device, a PET device (Positron Emission Tomography). tomography apparatus), ultrasound apparatus, CR apparatus (Computed Radiography) using a flat panel detector (FPD), mammography apparatus, endoscope apparatus, and the like.
  • the intra-medical institution information system 300 may include multiple types of modalities 340 .
  • the types and number of modalities 340 that exist on the intra-medical institution network may have various combinations for each medical institution.
  • the DICOM server 350 is a server that operates according to DICOM specifications.
  • the DICOM server 350 is a computer that stores and manages various data including images captured using the modality 340, and has a large-capacity external storage device and a database management program.
  • the DICOM server 350 communicates with other devices via the local communication line 326 to transmit and receive various data including image data.
  • the DICOM server 350 receives image data generated by the modality 340 and other various data via the local communication line 326, and stores and manages them in a recording medium such as a large-capacity external storage device.
  • the image processing management terminal 320A is an information processing device that functions as the user terminal 30.
  • the image processing management terminal 320A has a communication function for communicating with the medical information processing system 10, and is connected to the medical information processing system via the communication line 20.
  • FIG. The image processing management terminal 320A can acquire data from the DICOM server 350 or the like via the local communication line 326.
  • FIG. Also, the image processing management terminal 320A can send the processing results acquired from the medical information processing system to the DICOM server 350 and the viewer terminal 322.
  • FIG. The image processing management terminal 320A may also be used as the viewer terminal 322.
  • Various data stored in the database of the DICOM server 350 and various information including the processing results obtained by the image processing management terminal 320A can be displayed on the viewer terminal 322.
  • the viewer terminal 322 is a terminal for viewing images called a PACS (Picture Archiving and Communication Systems) viewer or a DICOM viewer.
  • a plurality of viewer terminals 322 can be connected to the network within the medical institution.
  • the form of the viewer terminal 322 is not particularly limited, and may be a personal computer, a workstation, a tablet terminal, or the like.
  • the software installed in the viewer terminal 322 may be dedicated viewing software, a web browser, or the like.
  • the viewer terminal 322 may function as the user terminal 30 for accessing the medical information processing system 10 .
  • the medical information processing system 10 communicates with the image processing management terminal 320A and/or the viewer terminal 322 of each medical institution via the communication line 20. As described with reference to FIGS. 1 to 5, the medical information processing system 10 provides medical information processing services in response to processing requests from multiple medical institutions.
  • a method for providing a medical image processing service realized using the medical information processing system 10 is an example of a “method for providing a medical information processing service” in the present disclosure.
  • Example of medical information processing method ⁇ 7 to 9 are flow charts showing an example of a medical information processing method performed by the medical information processing system 10 according to the embodiment. Each step shown in FIGS. 7 to 9 is executed by a computer functioning as the medical information processing system 10.
  • FIG. Medical information processing system 10 may be implemented by a computer system including one or more physical machines. Moreover, the medical information processing system 10 can be realized by distributed computing. A computer functioning as the medical information processing system 10 is not limited to one computer, and may be a collection of multiple computers.
  • the medical information processing system 10 receives medical images to be processed and processing requests from the user terminals 30 of a plurality of medical institutions.
  • step S12 the processing request distribution control unit 102 determines whether or not a processing request has been received. If the determination result in step S12 is No, the processing request distribution control unit 102 returns to step S10. When the processing request distribution control unit 102 receives the processing request and the determination result of step S12 is Yes determination, the process proceeds to step S14.
  • the processing request distribution control unit 102 determines the type of the received processing request. If the received processing request is a normal processing request, the processing request distribution control unit 102 proceeds to step S 16 to send the normal processing request to the normal processing request queue 106 .
  • step S14 determines whether the result of the type determination in step S14 is an emergency processing request. If the result of the type determination in step S14 is an emergency processing request, the processing request distribution control unit 102 proceeds to step S18 and sends the emergency processing request to the emergency processing request queue 108.
  • step S14 determines whether the result of the type determination in step S14 is an emergency system processing request.
  • the computational resource usage control unit 104 performs processing module increase/decrease control shown in step S20.
  • the subroutine of step S20 will be described later using FIG.
  • the normal system processing requests are stacked in the normal system processing request queue 106 in step S16, the normal system processing requests are sequentially sent to the normal system processing module NM in step S22, and the normal system processing requests are sent to the normal system processing module NM in step S22. processing takes place.
  • the emergency system processing requests are stacked in the emergency system processing request queue 108 in step S18, the emergency system processing requests are sequentially sent to the emergency system processing module EM in step S24. Emergency system processing is performed.
  • the number of processing modules of each of the normal system processing module NM and the emergency system processing module EM operating in steps S22 and S24 is adjusted by the processing module increase/decrease control in step S20.
  • step S26 the medical information processing system 10 outputs the processing result to provide it to the user terminal 30 of the requesting medical institution.
  • FIG. 7 shows a flow chart of one cycle from the reception of the processing request to the transmission of the processing result.
  • FIG. 8 is a flow chart showing an example of a subroutine applied to step S20 of FIG.
  • step S202 the computational resource usage control unit 104 performs processing from the number of emergency system processing requests received by the processing request distribution control unit 102 and the number of emergency system processing modules EM in operation to the completion of processing for the emergency system processing requests. Calculate waiting time.
  • the processing waiting time calculated in step S202 is an example of the "first processing waiting time" in the present disclosure.
  • the computational resource usage control unit 104 determines whether the calculated processing waiting time exceeds the threshold Th1.
  • the threshold Th1 is the allowable maximum waiting time (maximum allowable waiting time), specifically, the maximum allowable waiting time promised in the contract plan.
  • Th1_NP be the threshold Th1 for processing requests from medical institutions contracting the normal plan
  • Th1_HP be the threshold Th1 for processing requests from medical institutions contracting the high-speed plan.
  • the threshold Th1 is an example of the "first allowable waiting time" in the present disclosure.
  • step S204 the computing resource usage control unit 104 proceeds to step S206.
  • step S206 the computational resource usage control unit 104 calculates the number of emergency system processing modules EM that need to be added in order to complete processing within the maximum allowable waiting time promised in the contract plan.
  • step S208 the computational resource usage control unit 104 determines whether or not it is possible to suspend the normal system processing module NM with the current number of computational servers.
  • step S208 the computational resource usage control unit 104 proceeds to step S210.
  • step S210 the computational resource usage control unit 104 suspends some of the normal processing modules in operation, and instead, in step S212, newly activates the required number of emergency processing modules EM.
  • step S208 determines whether or not the number of suspended normal processing modules NM is less than the suspended upper limit number.
  • step S216 the computational resource usage control unit 104 proceeds to step S220.
  • step S220 the computational resource usage control unit 104 suspends the operating normal system processing modules NM up to the upper limit number, and instead, in step S222, newly activates the emergency system processing module EM.
  • step S222 the computational resource usage control unit 104 proceeds to step S234. Moreover, also when the determination result of step S216 is No determination, it progresses to step S234.
  • the computational resource usage control unit 104 monitors the rate of increase in the number of emergency system processing requests in step S230 in parallel with the processing of step S202 in order to advance the timing of the addition operation when addition of a computation server is required. ing.
  • the rate of increase in the number of processing requests can be obtained from the number of processing requests received per unit time.
  • step S232 the computational resource usage control unit 104 determines whether or not the rate of increase in the number of emergency system processing requests exceeds the threshold Th2.
  • Th2 different thresholds may be set for the normal plan and the high-speed plan.
  • Th2_NP be the threshold Th2 for the rate of increase in the number of emergency processing requests from medical institutions contracting the normal plan
  • Th2_HP be the threshold Th2 for the rate of increase in the number of emergency processing requests from medical institutions contracting for the high-speed plan.
  • Th2_HP ⁇ Th2_NP may hold.
  • step S232 determines whether the computational resource usage control unit 104 is a resource provisioned by step S232. If the determination result of step S232 is No, the computational resource usage control unit 104 proceeds to step S204. Note that the computational resource usage control unit 104 may return to step S230 instead of proceeding to step S204 when the determination result in step S232 is No.
  • step S232 determines whether the computational resource usage control unit 104 is necessary. If the determination result of step S232 is Yes, the computational resource usage control unit 104 proceeds to step S234.
  • step S234 the computational resource usage control unit 104 determines whether or not a computational server can be added.
  • An upper limit is set for the number of calculation servers that can be added, and the computational resource usage control unit 104 determines whether or not additional calculation servers can be added within the upper limit.
  • step S234 determines whether the determination result of step S234 is Yes. If the determination result of step S234 is Yes, the computing resource usage control unit 104 proceeds to step S236 and adds a computing server. Then, in step S238, the computational resource usage control unit 104 activates a new emergency system processing module on the added computational server.
  • step S212 or step S2308 the flow chart in FIG. 8 ends and returns to the flow chart in FIG.
  • step S234 determines whether the calculation server cannot be added. If the determination result in step S234 is No, the calculation server cannot be added, so the flow chart in FIG. 8 ends and returns to the flow chart in FIG.
  • FIG. 9 is a flowchart showing an example of control for reducing the number of emergency system processing modules EM in response to a decrease in demand for emergency system processing requests. The flowchart of FIG. 9 is executed when the process of adding the emergency system processing module EM is performed.
  • step S40 the computational resource usage control unit 104 acquires the number of emergency system processing modules EM in the processing standby state and their standby state duration.
  • step S42 the computational resource usage control unit 104 determines whether or not a specified number or more of the emergency system processing modules EM have been kept in the process standby state for a specified time or longer.
  • step S42 If the determination result in step S42 is No, the computational resource usage control unit 104 maintains the current number of emergency system processing modules EM, and returns to step S40.
  • step S42 determines whether the determination result of step S42 is Yes. If the determination result of step S42 is Yes, the computational resource usage control unit 104 proceeds to step S44 to stop the redundant emergency system processing module EM.
  • step S44 the computational resource usage control unit 104 determines whether or not there is a normal system processing module NM that is temporarily stopped to cope with the increased demand for emergency system processing requests.
  • step S44 determines whether the determination result in step S44 is Yes. If the determination result in step S44 is Yes, the computational resource usage control unit 104 stops the activated emergency system processing module instead of the temporarily suspended normal system processing module NM. Then, in step S48, the computational resource usage control unit 104 restarts the suspended normal processing module. After step S48, the computing resource usage control unit 104 returns to step S40.
  • step S44 determines whether or not the emergency system processing module EM can be stopped in units of added computation servers.
  • step S50 determines whether the determination result in step S50 is No. If the determination result in step S50 is No, the computational resource usage control unit 104 returns to step S40. If the determination result in step S50 is Yes, the computational resource usage control unit 104 advances to step S52, and for each computational server (N unit) stops the emergency system processing module EM and stops the calculation server.
  • step S54 the computational resource usage control unit 104 determines whether or not all the added computational servers have been stopped. If the determination result of step S54 is No, the computing resource usage control unit 104 returns to step S40. On the other hand, when the determination result of step S54 is Yes determination, the flowchart of FIG. 9 is complete
  • the specified number and specified time (first specified number) of the emergency system processing modules EN in the process standby state which are the determination criteria applied when determining whether or not to restart the temporarily suspended normal system processing module NM. and the first specified time) are the specified number of emergency system processing modules EN in the processing standby state and the specified time (the second The specified number and the second specified time) may be the same setting, or may be a different setting.
  • FIG. 10 is a block diagram showing an example of the hardware configuration of a computer.
  • Computer 800 may be a server computer, a personal computer, or a workstation.
  • the computer 800 may be a part or all of the already described medical information processing system 10, user terminal 30, DICOM server 350, electronic medical record system 324, image processing management terminal 320A, viewer terminal 322, or a plurality of these functions. It can be used as a device with
  • Computer 800 includes CPU (Central Processing Unit) 802, RAM (Random Access Memory) 804, ROM (Read Only Memory) 806, GPU (Graphics Processing Unit) 808, storage 810, communication unit 812, input device 814, display device 816 and bus 818 . Note that the GPU 808 may be provided as needed.
  • CPU Central Processing Unit
  • RAM Random Access Memory
  • ROM Read Only Memory
  • GPU Graphics Processing Unit
  • storage 810 communication unit 812, input device 814, display device 816 and bus 818 .
  • the GPU 808 may be provided as needed.
  • the CPU 802 reads various programs stored in the ROM 806, storage 810, etc., and executes various processes according to the instructions of the programs.
  • a RAM 804 is used as a work area for the CPU 802 . Also, the RAM 804 is used as a storage unit that temporarily stores read programs and various data.
  • the storage 810 includes, for example, a hard disk device, an optical disk, a magneto-optical disk, or a semiconductor memory, or a storage device configured using an appropriate combination thereof.
  • Various programs, data, and the like are stored in the storage 810 .
  • a program stored in the storage 810 is loaded into the RAM 804 and executed by the CPU 802, whereby the computer 800 functions as means for performing various processes defined by the program.
  • the communication unit 812 is an interface that performs wired or wireless communication processing with an external device and exchanges information with the external device.
  • the communication unit 812 can serve as an information acquisition unit that receives inputs such as data to be processed and processing requests.
  • the communication unit 812 can also serve as an information output unit that outputs processing results and the like.
  • the input device 814 is an input interface that receives various operational inputs to the computer 800 .
  • Input device 814 may be, for example, a keyboard, mouse, multi-touch panel, or other pointing device, or voice input device, or any suitable combination thereof.
  • the display device 816 is an output interface that displays various information.
  • the display device 816 may be, for example, a liquid crystal display, an organic electro-luminescence (OEL) display, a projector, or an appropriate combination thereof.
  • OEL organic electro-luminescence
  • a program that causes a computer to implement a part or all of at least one of the various processing functions in the medical information processing system 10 described in the above embodiment is an optical disk, magnetic disk, semiconductor memory, or other tangible object. It is possible to record the program on a computer-readable medium, which is a non-temporary information storage medium, and provide the program through this information storage medium.
  • processors include CPUs, which are general-purpose processors that run programs and function as various processing units, GPUs, which are processors specialized for image processing, and FPGAs (Field Programmable Gate Arrays).
  • PLD Programmable Logic Device
  • ASIC Application Specific Integrated Circuit
  • a single processing unit may be composed of one of these various processors, or may be composed of two or more processors of the same type or different types.
  • one processing unit may be configured by a plurality of FPGAs, a combination of CPU and FPGA, or a combination of CPU and GPU.
  • a plurality of processing units may be configured by one processor.
  • a single processor is configured by combining one or more CPUs and software. There is a form in which a processor functions as multiple processing units.
  • SoC System On Chip
  • the various processing units are configured using one or more of the above various processors as a hardware structure.
  • the hardware structure of these various processors is, more specifically, an electrical circuit that combines circuit elements such as semiconductor elements.
  • the medical information processing system 10 has the following advantages.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Theoretical Computer Science (AREA)
  • Public Health (AREA)
  • Medical Informatics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Epidemiology (AREA)
  • General Health & Medical Sciences (AREA)
  • Primary Health Care (AREA)
  • Biomedical Technology (AREA)
  • Nuclear Medicine, Radiotherapy & Molecular Imaging (AREA)
  • Radiology & Medical Imaging (AREA)
  • General Business, Economics & Management (AREA)
  • Business, Economics & Management (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Pathology (AREA)
  • Medical Treatment And Welfare Office Work (AREA)

Abstract

サーバ等の運用費を抑えつつ、救急系処理と非救急系処理との双方の処理要求について、それぞれ許容可能な待ち時間内で処理結果を提供可能な医療情報処理システムおよび方法、医療情報サービス提供方法ならびにプログラムを提供する。複数の仮想マシンを用いて構成されるサーバクラスターを備える医療情報処理システムであって、受け付けた処理要求の種別に応じて処理要求を非救急系処理要求キューまたは救急系処理要求キューに振り分ける第1の制御部と、非救急系処理要求キューに積まれた非救急系処理要求に対応した処理を行う非救急系処理モジュールと、救急系処理要求キューに積まれた救急系処理要求に対応した処理を行う救急系処理モジュールと、これら処理モジュールの個数を制御する第2の制御部と、を備え、第2の制御部による制御は、稼働中の複数の非救急系処理モジュールの一部を一時停止させ、かつ、新たに救急系処理モジュールを起動させることを含む。

Description

医療情報処理システムおよび方法、医療情報処理サービス提供方法ならびにプログラム
 本開示は、医療情報処理システムおよび方法、医療情報処理サービス提供方法ならびにプログラムに係り、特に複数の医療機関から医療情報の処理要求を受け付け、処理要求に応じた処理を実行して処理結果を要求元に返す医療情報処理に好適なコンピュータシステムおよび情報処理技術に関する。
 医療分野においては、CT(Computed Tomography)装置およびMRI(Magnetic Resonance Imaging)装置等の画像診断装置の進歩により、質の高い高解像度の医用画像を用いての画像診断が可能となってきている。特に、近年は深層学習により学習がなされたニューラルネットワークを利用した人工知能(Artificial Intelligence:AI)を用いることにより、画像から病変領域などを認識したり、病名などの分類を特定したりするための解析処理の精度が向上している。
 このようなコンピュータ支援診断(Computer Aided Diagnosis, Computer Aided Detection :CAD)等の解析処理は、例えば、肺、心臓、肝臓および脳等の部位毎に、さらには検出可能な病変毎に用意されることが多く、これらの解析処理を実行するためには、高性能なコンピュータが必要になる。特許文献1には、クラウドシステムを利用して医用画像の解析処理サービスを提供する仕組みが提案されている。
 特許文献2には、複数のジョブを同時に実行するコンピュータシステムにおいて、優先度の低いジョブを停止させ、その優先度が低いジョブが使用していたリソースを、優先度が高いジョブに割り当てて実行するためのジョブスケジューリング方法が開示されている。
特開2018-092311号公報 特開2020-024636号公報
 例えば、肺CADなど各種の医用画像処理機能をWebサービスとして提供するために各医療機関専用の画像処理サーバを確保すると、物理的サーバおよび仮想サーバを問わず、施設毎のサーバ運用費が高額になる。このため、画像処理については中央処理サーバのようなものを設けて、複数の医療機関で処理リソース(計算資源)を共有するような構成にすることが、運用コストを下げ、サービス提供をより安価に行えるようにするために必要である。
 複数の医療機関で処理リソースを共有する中央処理サーバ型の構成を採用すると、複数の医療機関から1つのシステムに対して処理要求が送信されるようになる。このような構成の問題点の1つは、例えば、緊急度の低い検査画像に対する処理によって中央処理サーバのリソースが逼迫している場合に、緊急度の高い救急現場からの画像処理要求が処理開始待ちになってしまい、緊急度の高い救急系の処理が、緊急度の低い通常系の処理によってなかなか実行できないという状況が発生し得ることである。
 このような課題に対して、緊急度の高い救急系の処理要求を優先して実行するという対応が考えられる。しかし、緊急度の高い処理要求ばかり優先して処理を実行すると、緊急度の低い処理が長期間実行されず、通常診療に影響を与えることも容易に予想される。
 特許文献2に記載の発明では、クライアントからの処理要求群の優先度に応じてどのように優先度が低いジョブを停止させ、より優先度が高いジョブへ計算資源を割り当てるかの方法が提案されている。しかし、特許文献2には、それぞれのジョブの許容最大待ち時間を担保するための仕組みがない。このため、特許文献2に記載の技術を、医療画像の解析処理サービスに適用した場合、例えば、優先度が低いジョブが通常診療系の処理要求であり、優先度が高いジョブが救急系の処理要求であるとした場合、救急系処理要求が連続して多数クライアントから送信された場合、通常診療系の処理が許容最大待ち時間を超えて待たされる可能性もあり、通常の診療等の業務に影響を与えてしまう。このため特許文献2に記載されている仕組みは、医療系処理には適さない。
 このような問題の解決策として、例えば、緊急度の高い救急向けの処理専用のサーバを用意しておき、救急系の処理要求はこの救急系処理専用サーバ宛に送信するというような対策が考えられる。しかし、救急系の処理は、その必要とされる頻度が散発的である場合が多く、常時救急向けの専用サーバを維持しておくと、確保した計算資源が余っているような状況が発生し、運用費が不必要に発生することでサービス利用料も結果的に高額になってしまうため望ましくない。
 また、別の解決策として、緊急度の高い処理要求が発生し次第、緊急度の高い処理用の仮想マシンを立ち上げるというような処理も考えられる。しかし、通常、仮想マシンの立ち上げには数分程度かかる場合もあるため、一刻を争う救急医療の現場等では望ましくない。
 本開示はこのような事情に鑑みてなされたものであり、サーバ等の運用費をできるだけ抑えつつ、緊急度の高い救急系処理と、緊急度の低い非救急系処理との双方について、それぞれ許容可能な待ち時間内で処理結果を提供することが可能となる医療情報処理システムおよび方法、医療情報サービス提供方法ならびにプログラムを提供することを目的とする。
 本開示の一態様に係る医療情報処理システムは、処理対象の医療情報と処理要求とを受け付け、処理要求に応じた処理を実行して処理結果を出力する医療情報処理システムであって、複数の仮想マシンを用いて構成されるサーバクラスターを備え、サーバクラスターは、処理要求を受け取り、処理要求が非救急に分類される処理を求める非救急系処理要求であるか、救急に分類される処理を求める救急系処理要求であるかに応じて、処理要求を非救急系処理要求キューまたは救急系処理要求キューに振り分ける第1の制御部と、非救急系処理要求キューを監視し、非救急系処理要求キューにスタックされた非救急系処理要求の指示内容に対応した非救急系の処理を行う非救急系処理モジュールと、救急系処理要求キューを監視し、救急系処理要求キューにスタックされた救急系処理要求の指示内容に対応した救急系の処理を行う救急系処理モジュールと、第1の制御部が受け取った救急系処理要求の数と稼働中の救急系処理モジュールの個数とに基づき、稼働させる非救急系処理モジュールの個数と救急系処理モジュールの個数とを制御する第2の制御部と、を備え、第2の制御部による制御は、稼働中の複数の非救急系処理モジュールのうちの一部を一時停止させ、かつ、新たに救急系処理モジュールを起動させて救急系処理モジュールの個数を増加させることを含む。
 本態様によれば、救急系処理要求の需要に応じて、サーバクラスター上で稼働する非救急系処理モジュールの個数と救急系処理モジュールの個数とを動的に調整することができる。救急系処理要求が増大した場合、稼働中の複数の非救急系処理モジュールのうちの一部を一時停止させて、そのリソースを用いて救急系処理モジュールの個数を増やし、救急系処理要求の需要に対処する。また、一時停止させる非救急系処理モジュールは一部の処理モジュールであり、他の一部の非救急系処理モジュールについては稼働状態が維持される。これにより、使用する計算資源を抑制しつつ、救急系処理と、非救急系処理との双方について、許容可能な待ち時間以内に処理結果を提供することが可能となる。
 本開示の他の態様に係る医療情報処理システムにおいて、第2の制御部は、第1の制御部が受け取った救急系処理要求の数と稼働中の救急系処理モジュールの個数とから、救急系処理要求に対する処理完了までの第1の処理待ち時間を計算し、第1の処理待ち時間が第1の許容待ち時間を超える場合に、第1の処理待ち時間を第1の許容待ち時間以内に収めるために救急系処理モジュールの個数を増加させる構成であってもよい。
 本開示の他の態様に係る医療情報処理システムにおいて、第2の制御部は、非救急系処理要求に対する処理完了までの第2の待ち時間が第2の許容待ち時間以内に収まる範囲で非救急系処理モジュールを一時停止させてよい個数の上限を動的に計算し、上限を超えない個数の非救急系処理モジュールを一時停止させ、代わりに救急系処理モジュールを新たに起動させる構成であってもよい。
 本開示の他の態様に係る医療情報処理システムにおいて、第2の制御部は、救急系処理モジュールの個数を増加させるために、仮想マシンの台数を増加させ、追加した仮想マシン上で複数の救急系処理モジュールを新たに起動させる構成であってもよい。
 本開示の他の態様に係る医療情報処理システムにおいて、第2の制御部は、処理待機中の救急系処理モジュールの個数が規定個数以上である状態が規定時間以上維持された場合に、救急系処理モジュールの個数を減少させる構成であってもよい。
 本開示の他の態様に係る医療情報処理システムにおいて、第2の制御部は、処理待機中の救急系処理モジュールの個数が第1の規定数以上である状態が第1の規定時間以上維持された場合に、非救急系処理モジュールの一時停止を伴って追加した救急系処理モジュールの個数を減少させ、かつ、一時停止させていた非救急系処理モジュールを再開させる構成であってもよい。
 本開示の他の態様に係る医療情報処理システムにおいて、第2の制御部は、処理待機中の救急系処理モジュールの個数が第2の規定数以上である状態が第2の規定時間以上維持された場合に、追加した仮想マシン上の救急系処理モジュールの個数を減少させ、追加した仮想マシンの台数を減少させる構成であってもよい。
 本開示の他の態様に係る医療情報処理システムにおいて、第2の制御部は、処理待機中の救急系処理モジュールの個数が第1の規定数以上である状態が第1の規定時間以上維持された場合に、非救急系処理モジュールの一時停止を伴って追加した救急系処理モジュールの個数を減少させ、かつ、一時停止させていた非救急系処理モジュールを再開させ、一時停止させていた非救急系処理モジュールを全て再開させた後に、追加した仮想マシン上の救急系処理モジュールの個数を減少させ、追加した仮想マシンの台数を減少させる構成であってもよい。
 本開示の他の態様に係る医療情報処理システムにおいて、サーバクラスターは、非救急系処理要求および救急系処理要求のそれぞれについて、処理要求を受け付けた場合の現在の処理待ち時間を計算し、現在の処理待ち時間の情報を、医療機関の利用端末に提供する構成であってもよい。
 本開示の他の態様に係る医療情報処理システムにおいて、非救急系処理要求に対する処理完了までの最大待ち時間が第3の待ち時間であり、かつ、救急系処理要求に対する処理完了までの最大待ち時間が第3の待ち時間よりも短い第4の待ち時間であることを約束する第1のプランと、非救急系処理要求に対する処理完了までの最大待ち時間および救急系処理要求に対する処理完了までの最大待ち時間の少なくとも一方が第1のプランの最大待ち時間よりも短い待ち時間であることを約束する第2のプランと、が用意され、サーバクラスターは、第1のプランを選択している医療機関からの処理要求の処理に割り当てられる第1のプラン用の非救急系処理モジュール、救急系処理モジュールおよび仮想マシンに加え、第2のプランを選択している医療機関からの処理要求の処理に割り当てられる第2のプラン用の非救急系処理モジュール、救急系処理モジュールおよび仮想マシンを備える構成であってもよい。
 この態様の場合、第1のプラン用の非救急系処理モジュール、救急系処理モジュールおよび仮想マシンは、第2のプランを選択している医療機関からの処理要求の処理にも使用されてよい。
 本開示の他の態様に係る医療情報処理システムにおいて、サーバクラスターは、第2のプランを選択する医療機関の数の増減に応じて、第2のプラン用の非救急系処理モジュールの個数、救急系処理モジュールの個数および仮想マシンの台数を増減させる構成であってもよい。
 本開示の他の態様に係る医療情報処理システムは、処理対象の医療情報と処理要求とを受け付け、処理要求に応じた処理を実行して処理結果を出力する医療情報処理システムであって、1つ以上のプロセッサと、1つ以上のプロセッサが実行するプログラムを記憶する1つ以上の記憶装置とを備え、1つ以上のプロセッサは、プログラムの命令に従い、複数の仮想マシンを用いて構成されるサーバクラスターとして動作し、サーバクラスターによって実行される処理は、処理要求を受け取り、処理要求が非救急に分類される処理を求める非救急系処理要求であるか、救急に分類される処理を求める救急系処理要求であるかに応じて、処理要求を非救急系処理要求キューまたは救急系処理要求キューに振り分ける処理要求分配制御と、非救急系処理要求キューを監視し、非救急系処理要求キューにスタックされた非救急系処理要求の指示内容に対応した非救急系の処理を行う非救急系処理モジュールとしての処理と、救急系処理要求キューを監視し、救急系処理要求キューにスタックされた救急系処理要求の指示内容に対応した救急系の処理を行う救急系処理モジュールとしての処理と、サーバクラスターが受け取った救急系処理要求の数と稼働中の救急系処理モジュールの個数とに基づき、稼働させる非救急系処理モジュールの個数と救急系処理モジュールの個数とを制御する計算資源使用状況制御と、を含み、計算資源使用状況制御は、稼働中の複数の非救急系処理モジュールのうちの一部を一時停止させ、かつ、新たに救急系処理モジュールを起動させて救急系処理モジュールの個数を増加させる処理を含む。
 本開示の他の態様に係る医療情報処理サービス提供方法は、本開示の医療情報処理システムを用いて実施される医療情報処理サービス提供方法であって、サーバクラスターが、通信回線を介して複数の医療機関から処理要求を受け付けることと、サーバクラスターが、処理要求に対応する処理を実行して処理結果を処理要求の要求元の医療機関に返すこととを含む。
 本開示の他の態様に係る医療情報処理方法であって、コンピュータが処理対象の医療情報と処理要求とを受け付け、処理要求に応じた処理を実行して処理結果を出力する処理を行うためにコンピュータによって実行される医療情報処理方法であって、コンピュータ上に構築される複数の仮想マシンを用いてサーバクラスターを構成することと、サーバクラスターが、処理要求を受け取り、処理要求が非救急に分類される処理を求める非救急系処理要求であるか、救急に分類される処理を求める救急系処理要求であるかに応じて、処理要求を非救急系処理要求キューまたは救急系処理要求キューに振り分ける第1の制御を行うことと、非救急系処理要求キューを監視し、非救急系処理要求キューにスタックされた非救急系処理要求の指示内容に対応した非救急系の処理を行う非救急系処理モジュールとしての処理を行うことと、救急系処理要求キューを監視し、救急系処理要求キューにスタックされた救急系処理要求の指示内容に対応した救急系の処理を行う救急系処理モジュールとしての処理を行うことと、サーバクラスターが受け取った救急系処理要求の数と稼働中の救急系処理モジュールの個数とに基づき、稼働させる非救急系処理モジュールの個数と救急系処理モジュールの個数とを制御する第2の制御を行うことと、を含み、第2の制御は、稼働中の複数の非救急系処理モジュールのうちの一部を停止させ、かつ、新たに救急系処理モジュールを起動させて救急系処理モジュールの個数を増加させることを含む。
 本開示の他の態様に係るプログラムは、コンピュータが処理対象の医療情報と処理要求とを受け付け、処理要求に応じた処理を実行して処理結果を出力する処理をコンピュータに実現させるためプログラムであって、コンピュータ上に構築される複数の仮想マシンを用いてサーバクラスターを構成し、サーバクラスター上において、処理要求を受け取り、処理要求が非救急に分類される処理を求める非救急系処理要求であるか、救急に分類される処理を求める救急系処理要求であるかに応じて、処理要求を非救急系処理要求キューまたは救急系処理要求キューに振り分ける第1の制御機能と、非救急系処理要求キューを監視し、非救急系処理要求キューにスタックされた非救急系処理要求の指示内容に対応した非救急系の処理を行う非救急系処理モジュールの機能と、救急系処理要求キューを監視し、救急系処理要求キューにスタックされた救急系処理要求の指示内容に対応した救急系の処理を行う救急系処理モジュールの機能と、第1の制御機能によりサーバクラスターが受け取った救急系処理要求の数と稼働中の救急系処理モジュールの個数とに基づき、稼働させる非救急系処理モジュールの個数と救急系処理モジュールの個数とを制御する第2の制御機能と、を実現させ、第2の制御機能は、稼働中の複数の非救急系処理モジュールのうちの一部を停止させ、かつ、新たに救急系処理モジュールを起動させて救急系処理モジュールの個数を増加させる機能を含む、プログラムである。
 本開示によれば、救急系処理要求の需要状況に応じて、サーバクラスター上で稼働する救急系処理モジュールと非救急系処理モジュールのそれぞれの個数を適応的に制御することができる。これにより、仮想マシンを含むシステムを構築するサーバ等の運用費を抑制しつつ、緊急度の高い救急系処理と、緊急度の低い非救急系処理との双方について、それぞれの許容可能な待ち時間内で処理結果を提供することが可能になる。
図1は、実施形態に係る医療情報処理システムの構成を示すブロック図である。 図2は、実施形態に係る医療情報処理システムの動作の概要を示すブロック図であり、救急系処理要求が無く、かつ、通常プラン契約者のみである場合の例を示す。 図3は、実施形態に係る医療情報処理システムの動作の概要を示すブロック図であり、救急系処理要求があり、計算サーバの増加処理が無く、かつ、通常プラン契約者のみである場合の例を示す。 図4は、実施形態に係る医療情報処理システムの動作の概要を示すブロック図であり、救急系処理要求があり、計算サーバの増加処理があり、かつ、通常プラン契約者のみである場合の例を示す。 図5は、実施形態に係る医療情報処理システムの動作の概要を示すブロック図であり、救急系処理要求があり、計算サーバの増加処理があり、かつ、高速プラン契約者が存在する場合の例を示す。 図6は、医療情報処理システムを利用する複数の医療機関の医療機関内情報システムの例を示すブロック図である。 図7は、実施形態に係る医療情報処理システムによって実行される医療情報処理方法の例を示すフローチャートである。 図8は、図7のステップS20に適用されるサブルーチンの例を示すフローチャートである。 図9は、救急系処理要求の需要減に対応した救急系処理モジュールの個数削減制御の例を示すフローチャートである。 図10は、コンピュータのハードウェア構成の例を示すブロック図である。
 以下、添付図面に従って本発明の好ましい実施形態について説明する。
 《医療情報処理システムの概要》
 図1は、実施形態に係る医療情報処理システム10の構成を示すブロック図である。医療情報処理システム10は、通信回線20を介して複数の医療機関から医用画像などの処理対象の医療情報と、その医療情報に対する処理要求とを受け付け、処理要求に応じた処理を実行して処理結果を要求元の医療機関へ返すWebサービスを提供する医療系処理サーバクラスターを含むコンピュータシステムである。
 本実施形態では、医用画像の処理サービスを提供するシステムを例示するが、処理対象の医療情報は、医用画像に限らず、ゲノムデータ、心電図の波形データ、血液検査データあるいは音声データなど、画像以外の医療データであってもよく、複数種類のデータの組み合わせであってもよい。
 医療系処理とは、救急系か、救急系以外の通常系かに分類できる医療機器向けアプリケーション関連処理のことを指す。本明細書において「通常」という用語は、「非救急」と同義である。医療系処理には、例えば、CT装置あるいはMRI装置などの医療機器を用いて撮影される医用画像を処理して病変の検出あるいはセグメンテーションもしくはラベリングなどを行う医用画像処理が含まれる。医療系処理は、医療情報処理の一例であり、医用画像は医療情報の一例である。
 通信回線20は、インターネットを含むワイドエリアネットワークであってよい。図1に示す「医療機関1」、「医療機関2」・・・「医療機関L」の表示は、L個の医療機関が存在していることを表している。医療機関は、例えば、病院、診療所、医療研究センター、医療健診センターなどである。以下、各医療機関を識別するインデックスをjとし、医療機関MIjのように表記する。jは1からLまでの整数(j=1,2・・・L)を表す。
 各医療機関MIjは医療機関内ネットワークを有し、医療機関MIj毎に、1つ以上の利用端末30がそれぞれの医療機関内ネットワークに接続される。利用端末30は、各医療機関内ネットワーク内に存在する情報処理装置であって、医療情報処理システム10の医療系処理サーバクラスターによって提供される処理サービスを利用するための端末である。ここで利用端末30とは、安全に医療機関内のデータにアクセスできるネットワーク内に存在する計算資源を指しており、その利用端末30は物理的に医療機関内に存在しなくてもよい。利用端末30は、物理マシンであってもよいし、仮想マシンであってもよく、具体的な形態は限定されない。利用端末30は、ワークステーションであってもよいし、パーソナルコンピュータであってもいし、タブレット端末などであってもよい。
 利用端末30には、医療情報処理システム10の処理機能を利用するためのクライアントソフトウェアが構築される。ここでクライアントソフトウェアとは、医療情報処理システム10の医療系処理サーバクラスターが提供する画像処理サービスを利用できるものであればよく、その形態は問わない。クライアントソフトウェアは、専用のアプリケーションであってもよいし、汎用的なWebブラウザーなどであってもよい。
 医療情報処理システム10として機能する医療系処理サーバクラスターは、仮想マシンを用いて構成される。この仮想マシンの展開先は、仮想マシン群をホスティングできる環境であればよく、例えば、クラウドコンピューティング環境であってもよい。図1には、複数の仮想マシンVM0,VM1,VM2・・・VMk・・・を含む仮想マシンクラスターを示す。以下、各仮想マシンを識別するインデックスをkとし、仮想マシンVMkのように表記する。kは0以上の整数である。仮想マシンの台数は必要に応じて増加させたり、減少させたりすることが可能である。仮想マシンクラスターは1台の物理マシン上に構築されてもよいし、複数台の物理マシン上に構築されてもよい。
 仮想マシンVMkを用いて医療系処理サーバクラスターを構築後、このクラスター上に、医用画像処理のWebサービスを提供するために必要な処理要求分配制御部102と、計算資源使用状況制御部104と、通常系処理要求キュー106と、救急系処理要求キュー108と、通常系処理モジュールNMと、救急系処理モジュールEMとが展開される。なお、これらのモジュールを展開直後で医療情報処理システム10が救急系処理要求を受信していない状況においては、救急系処理モジュールEMはその起動に必要な構成のインストールのみが行われており、起動自体はされていない。
 処理要求分配制御部102は、各医療機関MIjの利用端末30からの処理要求を受け付け、その処理要求の種別に応じて、通常系処理要求キュー106または救急系処理要求キュー108に処理要求を振り分ける。すなわち、処理要求分配制御部102は、受信した処理要求が通常系の処理を求める処理要求であるか、救急系の処理を求める処理要求であるかを判別し、判別した処理要求の種別に応じて、通常系処理要求キュー106または救急系処理要求キュー108に処理要求を送信する。
 通常系処理要求キュー106は、救急系の処理要求以外の処理要求を一時的に格納(スタック)するキューである。救急系処理要求キュー108は、救急系の処理要求を一時的に格納するキューである。
 本明細書において、救急現場などからの緊急度の高い救急系の処理要求を「救急系処理要求」といい、通常診療の検査などのように緊急度の低い通常系の処理要求を「通常系処理要求」という。緊急度は「優先度」と言い換えてもよい。利用端末30から発せられる処理要求は、通常系処理要求または救急系処理要求のいずれかに分類される。救急系処理要求に対応する救急系の処理を「救急系処理」といい、通常系処理要求に対応する通常系の処理を「通常系処理」という。救急系処理の処理内容と、通常系処理の処理内容とは異なるものであってよい。例えば、通常系処理は、肺CAD処理を含み、救急系処理は、気胸領域の検出処理、脳梗塞検出処理、あるいは脳出血検出処理などを含む。
 計算資源使用状況制御部104は、処理要求分配制御部102に送信されてくる処理要求の種別と、通常系処理要求キュー106および救急系処理要求キュー108のそれぞれの処理要求キューに滞留している処理要求数とを監視し、救急系処理要求の要求状況および処理状況に応じて、稼働中の通常系処理モジュールNMの一時停止および救急系処理モジュールEMの追加起動、さらには、計算ノードの追加などを制御する。ここでの計算ノードとは、仮想マシンを用いた計算サーバである。
 図1では、仮想マシンVM0に、処理要求分配制御部102、計算資源使用状況制御部104、通常系処理要求キュー106および救急系処理要求キュー108を展開し、仮想マシンVM1,VM2・・・VMk・・・に通常系処理モジュールNMおよび/または救急系処理モジュールEMを展開する例が示されている。
 通常系処理モジュールNMは、通常系の医用画像処理を行う処理モジュールである。図1に示す「通常系処理モジュール1」「通常系処理モジュール2」・・・「通常系処理モジュールN」の表示は、各計算ノード内にN個の通常系処理モジュールが展開されていることを示している。
 救急系処理モジュールEMは、救急系の医用画像処理を行う処理モジュールである。図1では「救急系処理モジュール1」のみが示されているが、救急系処理要求の要求状況および処理状況によって、各計算ノード内に複数個の救急系処理モジュールEMが展開され得る。
 通常系処理モジュールNMと救急系処理モジュールEMのそれぞれは、対応する処理要求キューを監視して、実行指示が届き次第、実行指示に応じた処理を行う。通常系処理モジュールNMは、通常系処理要求キュー106にスタックされた通常系処理要求の指示内容に対応した通常系の処理を行う。救急系処理モジュールEMは、救急系処理要求キュー108にスタックされた救急系処理要求の指示内容に対応した救急系の処理を行う。
 《本サービスの利用契約のタイプ》
 医療情報処理システム10を用いて提供される医用画像処理サービスには、通常プランと高速プランとが用意されている。通常プランは、医療情報処理システム10を使用するサービスを利用するプランの一種であり、後述の高速プランよりも多数の医療機関間で計算資源を共有するため、利用料金は高速プランよりも安価だが処理要求を出してから処理完了まで(処理結果を受け取るまで)の最大待ち時間が長い仕様のプランである。
 高速プランは、医療情報処理システム10を使用するサービスを利用するプランの一種であり、上記の通常プランよりも利用料金は高価だが処理要求を出してから処理完了までの最大待ち時間が短い仕様のプランである。高速プラン契約者からの処理要求に対しては、通常プラン契約者よりも多く計算資源を割り当てることにより、待ち時間の短縮を図る。
 例えば、通常プランの場合、通常系処理の最大待ち時間は10分、救急系処理の最大待ち時間は3分とし、高速プランの場合には、通常系処理の最大待ち時間は3分、救急系処理の最大待ち時間は1分とするなど、契約内容にて最大待ち時間を定める。
 通常プランにおいて定める救急系処理の最大待ち時間の3分と、高速プランにおいて定める救急系処理の最大待ち時間の1分とのそれぞれは本開示における「第1の許容待ち時間」の一例である。通常プランにおいて定める通常系処理の最大待ち時間の10分と、高速プランにおいて定める通常系処理の最大待ち時間の3分とのそれぞれは本開示における「第2の許容待ち時間」の一例である。通常プランにおいて定める通常系処理の最大待ち時間の10分と、救急系処理の最大待ち時間の3分とは本開示における「第3の待ち時間」と「第4の待ち時間」との一例である。
 高速プランにおける通常系処理および救急系処理のそれぞれの最大待ち時間が、通常プランのそれぞれの最大待ち時間よりも短いことが好ましい形態であるが、高速プランにおける通常系処理および救急系処理のうち少なくとも一方の最大待ち時間が通常プランのものよりも短い設定であればよい。
 各医療機関MIjは、通常プランまたは高速プランのいずれかのプランを選択して本サービスの提供者との間で利用契約を結ぶことにより、医療情報処理システム10による医用画像処理サービスを利用することができる。通常プランは本開示における「第1のプラン」の一例である。高速プランは本開示における「第2のプラン」の一例である。
 《システム挙動の概要》
 まず、本サービスの利用者(医療機関)が通常プラン契約者のみである場合のシステム挙動について図2~図4を用いて説明する。
 〈例1〉救急系処理要求無し、通常プラン契約者のみの場合
 図2は、実施形態に係る医療情報処理システム10の動作の概要を示すブロック図である。図2は、どの医療機関MIjからも救急系処理要求が送信されてきていない場合の例であり、通常系と救急系の2種類の処理モジュールのうち通常系処理モジュールNMのみがM台の計算サーバ上で稼働し、通常系処理要求のみが医療系処理サーバクラスター内部で処理されているときの一連の流れを表す図である。図2において、各医療機関MIjは通常プランを契約しているものとする。
 図2に示す「通常プラン用サーバ1」、「通常プラン用サーバ2」・・・「通常プラン用サーバM」の表示は、処理モジュール展開用の計算サーバであって、通常プラン契約者間で共有されるサーバを表す。M台の計算サーバのそれぞれを計算サーバNPS1、NPS2・・・NPSMと表記する。それぞれの計算サーバNSPkにおいてN個の通常系処理モジュールNMが稼働している。なお、N個の通常系処理モジュールNMの処理モジュール群は、異なる種類の処理を実行する処理モジュールが混在してもよい。また、異なる計算サーバ上に展開される処理モジュールの種類の組み合わせは同じであってもよいし、異なっていてもよい。
 図2中の手順[1]~[7]の流れを例に、利用者が本システムをどのように利用するかの具体例を説明する。
 手順[1]:手順[1]にて、利用者は利用端末30上にインストールされた、本システム利用のためのクライアントソフトウェアを使用して、医療情報処理システム10に向けて医用画像の処理要求を行う。このとき、利用端末30から送信する処理要求が通常の検査等に関する処理要求(通常系処理要求)なのか、それとも救急現場の検査等に関する処理要求(救急系処理要求)なのかの判別は、利用者が処理要求の種別を指定することにより行ってもよいし、使用されるクライアントソフトウェア種別等を用いてプログラム的に行ってもよい。図2の例では、通常系処理要求のみが送信されて来ている想定で説明を進める。
 手順[2]:手順[2]にて、利用端末30から医療情報処理システム10宛に送信された処理要求は、最初に処理要求分配制御部102にて受信され、要求内容が解釈される。
 手順[3]:図2における手順[3]は、計算資源使用状況制御部104が、処理要求分配制御部102に入って来る処理要求の種別を監視していることを示している。計算資源使用状況制御部104がその機能を発現させるのは、後述する図3および図4に示した救急系処理要求を受信した場合であるので、図2の例では計算資源使用状況制御部104は特に動作していない。
 手順[4]:手順[4]にて、処理要求分配制御部102は、受信した処理要求の種別に対応するキュー(通常系処理要求キュー106または救急系処理要求キュー108)に、処理要求の内容を送信する。ここでキューはメッセージキューやリレーショナルデータベースなど、ある処理要求が処理モジュールによって処理されるまでに一時的に保存出来ればよく、その形態は問わない。処理要求分配制御部102は、通常系処理要求または救急系処理要求に応じて、対応するキューに処理要求を積む。
 手順[5]:手順[5]にて、通常系処理モジュールNMnは通常系処理要求キュー106から通常系処理要求を受信する。この受信方法としては、通常系処理モジュールNMnが通常系処理要求キュー106に新着の処理要求があれば処理開始を行えるような実装となっていれば、その実現方法は問わない。なお、通常系処理モジュールNMnの表記における添字のnは、計算サーバ上にて起動されている通常系処理モジュールを識別するインデックスである。図2の例ではnは1からNまでの整数を表す。
 手順[6]:通常系処理要求キュー106から通常系処理要求を受信した通常系処理モジュールNMnは、手順[6]にて処理要求に対応する必要な処理を行う。図2の例では、通常系処理を担当する通常系処理モジュールNMが通常系処理要求キュー106から処理要求を取得して処理を行う。
 ここで、各計算サーバ上にて起動されている処理モジュールの最大数は、各処理モジュールに割り当てる必要があるCPU数およびメモリ量と、各計算サーバのCPUコア数およびメモリ量の上限によって決定される。これは計算サーバ上にて起動されている処理モジュールが通常系処理モジュールNMであるか、救急系処理モジュールEMであるかといった処理モジュールの種別によらない。図2においては、各計算サーバ上で起動されている処理モジュールの最大数がN個である場合の例が示されている。なお、計算サーバ上で起動される処理モジュールの最大数がサーバごとに異なる構成であってもよい。
 手順[7]:手順7にて、処理要求の送信元(要求元)である利用端末30は、医療情報処理システム10から処理結果を取得する。各利用端末30は、処理結果が取得可能かどうかを定期的に医療系処理サーバクラスターに問い合わせ、処理結果の取得可能であったら医療系処理サーバクラスターから結果取得を開始してもよいし、医療系処理サーバクラスター側から利用端末30に結果取得可能になった旨を通知し、利用端末30はその通知を受けて結果取得を開始してもよい。利用端末30の利用者は、利用端末30に解析結果が取得され次第、その結果を閲覧することができる。
 通常系処理要求は、通常診療などで発生するため、医療機関ごとに通常系処理要求の数は異なるものの、各医療機関における通常系処理要求の数が1日のうちに大きく増減するということはあまりなく、利用する医療機関の数が固定されれば定常的にどの程度の数の通常系処理要求が送信されるかがおおよそ固定される性質のものである。このため、本実施形態に係る医療情報処理システム10が定常的に稼働させる計算サーバの台数の最小値は、利用契約中の医療機関の数と、ピーク時に見込まれる各医療機関の最大通常系処理要求数と、ピーク時の通常系処理要求に対する処理完了までの最大許容待ち時間とを勘案し、必要十分な台数を求め、これを最小値として採用する。
 図2に示す通常プラン用サーバの台数(M台)のMは、このような観点から求まった最小値を表しており、救急系処理要求がない状況において、常時M台の計算サーバは稼働させていることを示している。
 この通常系処理要求に対する処理完了までの最大許容待ち時間に関しては、各医療機関と事前に合意しておく。この最大許容待ち時間をより一層短縮したい医療機関は、後述の高速プランを契約することにより、待ち時間を短縮できるようにする。
 なお、M台の計算サーバを稼働させておく必要があるのは、医療機関が通常の外来診察受け付け時間中(通常診療業務時間中)の例えば日中8:00~18:00とし、それ以外の時間帯にはM台よりも常時稼働台数を少なくしてもよい。
 〈例2〉救急系処理要求あり、通常プラン契約者のみの場合
 図3および図4は、医療機関MIから救急系処理要求が送信されて来ている状態でのシステム動作の一連の流れを表すブロック図である。図3は、後述の図4とは異なり、救急系処理要求の数が医療系処理サーバクラスターの計算サーバM台で処理可能な数よりも少ないため、M+1台目の計算サーバを追加する必要がない状況を表している。
 これに対し、図4は、M台の計算サーバで起動出来る救急系処理モジュールEMの個数では救急系処理要求を処理しきれない場合を表しており、M+1台目の計算サーバを追加することにより、救急系処理要求に対する処理能力を増強する場合のシステム動作の一連の流れを表している。
 図3における手順[1]では、通常系処理要求に混ざって救急系処理要求が利用端末30から送信される。利用端末30から送信された通常系処理要求及び救急系処理要求は、処理要求分配制御部102にて受信される(手順[2])。
 手順[3]にて、計算資源使用状況制御部104は、処理要求分配制御部102を監視している。処理要求分配制御部102が救急系処理要求を受信すると同時に、計算資源使用状況制御部104は以下の動作を行う。
 処理要求分配制御部102が受信した救急系処理要求の数が、救急系処理モジュールEMを増加させる閾値を超えた場合、計算資源使用状況制御部104は稼働中の通常系処理モジュールNMの一部を一時停止させ、救急系処理モジュールEMを代わりに起動させる。図3において、ドットパターンを付して塗りつぶした通常系処理モジュールNMは一時停止させた処理モジュールであることを表している(図4および図5においても同様)。
 この時、起動準備にかかる時間ロスを可能な限り抑える為、救急系処理モジュールEMを運用費の負担にならない範囲で常時待ち受けさせておいてもよい。例えば図3におけるM台目の通常プラン用サーバNPSMのように、1台の計算サーバを全て救急系処理モジュールEM1~Nに常時占有させているのは、救急系処理要求が少ない場合にはサーバ運用費が必要以上にかかってしまうが、通常プラン用サーバNPS2のように救急系処理モジュールEMを通常系処理モジュールNMと同じサーバに相乗りさせる程度であれば、少数の救急系処理モジュールEMを常時待機させることも、運用費の観点から許容可能な場合がある。
 ここで、救急系処理モジュールEMを増加させる閾値とは、例えば、受信した処理要求数と現在稼働中の救急系処理モジュールEMの個数から処理待ち時間を動的に求め、救急系処理モジュールEMの最大許容待ち時間を超えた場合とする。
 稼働中の通常系処理モジュールNMの一時停止とは、Linux(登録商標)またはWindows(登録商標)OS(Operating System)等により提供される、プロセスを一時停止する仕組みを使用してもよいし、処理途中の状態を一時ファイル等に保存し、それを再度処理する際に読み込んで再開するというような形式をとってもよい。
 計算資源使用状況制御部104が通常系処理モジュールNMを一時停止可能な数には上限を設定する。これは仮に大量の救急系処理要求が行われた際に、ほとんどの通常系処理モジュールが停止されてしまうことで通常系処理要求の処理が最大許容待ち時間を超えて待たされることを防ぐためである。
 通常系処理モジュールNMを一時停止させることが可能な上限数の決め方は、通常系処理要求の単位時間当たりの受信数に対して、通常系処理モジュールNMが何個稼働していれば、各処理要求が処理完了になるまでの時間が何分になるかという値を事前に計測して統計値的に取得しておき、医療機関と事前に合意した、何分間の滞留時間なら許容可能かという最大許容待ち時間を計算資源使用状況制御部104に対して設定値として与えることによって、計算資源使用状況制御部104によって動的に決定する。つまり、計算資源使用状況制御部104は、通常処理要求に対する処理完了までの待ち時間(「第2の待ち時間」の一例)が最大許容待ち時間以内に収まる範囲で通常系処理モジュールNMの一時停止可能個数の上限を動的に計算する。
 計算資源使用状況制御部104は、通常系処理モジュールNMを一時停止可能な上限数まで一時停止させ、代わりに複数の救急系処理モジュールEMを起動させても救急系処理要求に対する処理完了までの待ち時間が最大許容待ち時間を超えることが見込まれる場合、計算資源使用状況制御部104は、図4に示すように、M+1台目の計算サーバを起動し、そのM+1台目の計算サーバにて救急系処理モジュールEMを起動する。
 ここでM+1台目にて起動される救急系処理モジュールの数は、追加された計算サーバM+1にて起動出来る救急系処理モジュールEMの最大数であることが望ましい。一般に、処理モジュールを一時停止させて起動させる処理は数秒から、長くても数十秒程度で完了するが、計算サーバの追加起動はOSの起動等も必要となるため数分程度かかる。このため、計算サーバの追加動作を開始するタイミングは、稼働中の救急系処理モジュールEMの数が足りなくなるよりも前から開始していることが望ましい。したがって、計算サーバの追加動作を開始する閾値は、救急系処理要求数の増加率などを指標とし、計算サーバの追加処理を、余裕を持って行えるような閾値とすることが望ましい。
 なお、図4では一例として、M+1台目の計算サーバを1台追加する例を挙げたが、1台の計算サーバの追加だけでは不足する場合は、M+2,M+3・・・と、追加する計算サーバの台数を増やしていってもよい。
 また、図3および図4の例にて、救急系処理要求を受信次第、計算サーバを追加するのではなく、通常系処理モジュールNMを一時停止させることで一時的に対応しようとした理由は、計算サーバを追加すると運用費が増加するため、可能な限り計算サーバの台数を増加させずに、救急系処理要求の需要増に対応することが望ましいためである。
 図4の説明において、計算サーバを追加していくと述べたが、追加出来るサーバ台数には上限を設けることが望ましい。この上限数を定めるために、事前に救急系処理要求の需要ピークを計測値等から試算し、ピーク時に救急系処理要求の最大待ち時間がどの程度になるかを計算しておき、医療機関と事前に合意しておく。この最大待ち時間をより短縮したい医療機関は、後述の高速プランを契約することにより待ち時間を短縮できるようにする。
 また、一時停止された通常系処理モジュールNMは、他の稼働中の通常系処理モジュールNMの処理が終了次第、通常系処理要求キュー106にて処理待ちとなっている他の処理要求よりも優先して処理を再開させる。処理の再開方法としては一時停止時に、一時停止させた処理を通常系処理要求キュー106の先頭に配置する等の方法が考えられる。
 図3または図4に示す手順[4]にて、処理要求分配制御部102は受信した処理要求の種別に応じて、受信した処理要求を通常系処理要求キュー106または救急系処理要求キュー108に分配する。
 手順[5]にて、通常系処理モジュールNMと救急系処理モジュールEMとは、通常系処理要求キュー106または救急系処理要求キュー108からそれぞれ対応する処理要求を受信する。
 通常系処理要求キュー106から通常系処理要求を受信した通常系処理モジュールNMと、救急系処理要求キュー108から救急系処理要求を受信した救急系処理モジュールEMとは、手順[6]にてそれぞれの処理要求に対応する必要な処理を行う。図2の例では、通常系処理を担当する通常系処理モジュールNMが通常系処理要求キュー106から処理要求を取得して処理を行う。
 手順[7]にて、各利用端末30は、医療系処理サーバクラスターから処理結果を取得する。各利用端末30は、処理結果が取得可能かどうかを定期的に医療系処理サーバクラスターに問い合わせ、結果取得可能であったら医療系処理サーバクラスターから結果取得を開始してもよいし、医療系処理サーバクラスター側から利用端末に結果取得可能になった旨を通知し、利用端末はその通知を受けて結果取得を開始してもよい。端末利用者は利用端末に解析結果が取得され次第、その結果を閲覧する。
 〈救急系処理要求の需要が減少した場合のシステム挙動〉
 図3および図4では、救急系処理要求の需要増に対して、医療情報処理システム10がどのように動作して救急系処理要求に対する処理能力を増強させるかについて説明してきた。以下に、救急系処理要求の需要減に対する本システム動作を説明する。なお、救急系処理要求の需要減に対するシステム挙動は、図2~図4で説明した需要増に対するシステム挙動について関する図2~図4と重複する部分が多いため図示を割愛する。
 処理要求分配制御部102を監視している計算資源使用状況制御部104は、救急系処理要求の受信数が減少すると、処理待機中となっている救急系処理モジュールEMがあることを検知する。計算資源使用状況制御部104は、各計算サーバにおける救急系処理モジュールEMの稼働状況を示す情報を取得してもよい。
 処理待ち受け状態のままとなっている救急系処理モジュールEMの個数が一定時間維持された場合、計算資源使用状況制御部104は救急系処理モジュールEMに対する計算資源割当量を減らすための動作を開始する。その際のシステム動作について以下に述べる。
 なお、この救急系処理モジュールEMに対する計算資源割当量を減少させる動作の開始条件となる「一定時間」という規定時間および処理待機中の救急系処理モジュールEMの「個数」についての規定個数などの条件について、外部から設定できるようにすることが好ましい。
 処理待ち受け状態のままになっている救急系処理モジュールEMの個数が規定個数以上である状態が規定時間以上維持された場合、まず、計算資源使用状況制御部104は、通常系処理要求に対する処理能力を回復させることを優先する。図4を例に説明すると、図4中に示す通常プラン用サーバNPS2~NPSMの各計算サーバにて立ち上がっている救急系処理モジュールEMのうち、処理待ち受け状態となっているものを順次停止させ、停止させた救急系処理モジュールEMの代わりに、通常系処理モジュールNMを立ち上げていき、図1の状態に近づけていく。
 計算サーバNPS2~NPSM上に立ち上げた救急系処理モジュールEMを全て通常系処理モジュールNMと入れ替えた状態で、さらに処理待ち受け状態となっている救急系処理モジュールEMが計算サーバNPSM+1,NPSM+2,・・・に存在する場合は、これら処理待ち受け状態となっている救急系処理モジュールEMの個数がN個(各計算サーバに立ち上げられる救急系処理モジュールの最大数)よりも多くなり次第、そのN個の単位でM+1台目以降の計算サーバを1台ずつ停止させていく。
 上記のとおり、救急系処理要求の需要減により計算サーバを停止させている最中に救急系処理要求の需要増が発生した場合には、図3および図4の手順[3]で説明した流れに従い、再度救急系処理モジュールEMの個数を増やしていく。
 〈例3〉高速プラン契約者が本システムを利用する場合のシステム挙動の例
 図5は、図4に示す状況に加えて、高速プラン契約者が要素として加わり、医療情報処理システム10に高速プラン用サーバが加わった例が示されている。図5に示す「高速プラン用サーバ1」、・・・「高速プラン用サーバR」の表示は、処理モジュール展開用の計算サーバであって、高速プラン契約者間で共有されるサーバを表す。R台の計算サーバのそれぞれを計算サーバHPS1、・・・HPSRと表記する。高速プラン用サーバとしての計算サーバHPS1,・・・HPSRは、仮想マシンを用いて構成される。高速プラン用サーバの台数Rは、通常プラン用サーバの台数Mと同様に、高速プランにて約束する最大許容待ち時間を実現するように決定される。
 図5を用いて、高速プラン契約者も医療系処理サーバクラスターを使用するようになった場合のシステム動作について説明する。
 利用端末30には通常プラン契約者、高速プラン契約者に関わらず、通常系処理要求および救急系処理要求の双方の処理完了までの推定待ち時間が表示される。この推定待ち時間は、事前に通常系処理要求キュー106と救急系処理要求キュー108とのそれぞれで処理待ちの処理要求件数が何件で、稼働中の処理モジュール個数が何個だと待ち時間がどの程度となるかを計測して統計的に求めておき、その値を元に計算される。計算された推定待ち時間の情報は、医療系処理サーバクラスターから各利用端末30が取得できるようにしておく。
 各医療機関の利用者は、利用端末30に表示される推定待ち時間を確認し、より早く処理できるようにしたいかどうかを判断する判断材料に使用することができる。
 図5では、医療機関Lが高速プランを契約したことを表している。医療機関Lが高速プランを契約した情報は、利用端末から医療系処理サーバクラスターに対して送信される。その情報を受信した計算資源使用状況制御部104は高速プラン用サーバHPSを起動し、高速プラン契約者の医療機関Lに対して追加の計算サーバ(高速プラン用サーバHPs1、・・・HPSR)が割り当てられるようにする。図5では、医療機関Lが高速プランを契約した例が示されているが、複数の医療機関が高速プラン契約者となり得る。
 高速プラン用サーバHPS1、・・・HPSRは、高速プランを契約した複数の医療機関によって共有され得る。ただし、ここで高速プラン用サーバを共有できる医療機関の数の上限は、高速プランの契約の際に合意した最大許容待ち時間を超えない範囲の数とする。この上限を超えた数の医療機関が高速プランを契約する場合、計算資源使用状況制御部104は、さらに追加の高速プラン用サーバHPSR+1、HPSR+2・・・を起動する。
 高速プラン用サーバは、通常プラン用サーバを使用した際の処理能力に対して、処理能力を追加するという位置づけのものとし、高速プラン契約者にも通常プラン用サーバ上の処理モジュールを割り当てることが望ましい。これは計算サーバを共有する医療機関数が少なくなるほど、1つの医療機関が負担しなければならないサーバ運用費が増加し、結果としてサービス利用料が高額になってしまうためである。
 計算資源使用状況制御部104が常時用意する高速プラン用サーバの台数Rは、高速プランにおいて約束する通常系処理の最大許容待ち時間内での処理完了を達成するために、現在高速プランを契約中の医療機関数に対して、通常プラン用サーバに加えて何台計算サーバを用意すればよいかという値を動的に求めることで決定する。このため、高速プラン契約者数の増減に応じて、高速プラン用サーバHPSの常時稼働台数も増減する。
 高速プラン契約者から通常系処理要求に混ざって救急系処理要求が送信されて来た場合、医療情報処理システム10は、図2から図4を用いて説明した処理の流れに従い、救急系処理要求の需要に応じて、救急系処理モジュールEMの増減および計算サーバの増減を行う。
 仮想マシンVMkを用いて構成される医療用処理サーバクラスターは本開示における「サーバクラスター」の一例である。処理要求分配制御部102は本開示における「第1の制御部」の一例である。処理要求分配制御部102が行う処理は本開示における「処理要求分配制御」および「第1の制御」の一例である。処理要求分配制御部102の機能は本開示における「第1の制御機能」の一例である。計算資源使用状況制御部104は本開示における「第2の制御部」の一例であり、計算資源使用状況制御部104が行う処理は本開示における「計算資源使用状況制御」および「第2の制御」の一例である。計算資源使用状況制御部104の機能は本開示における「第2の制御機能」の一例である。通常系処理要求は本開示における「非救急系処理要求」の一例であり、通常系処理要求キュー106は本開示における「非救急系処理要求キュー」の一例である。通常系処理モジュールNMは本開示における「非救急系処理モジュール」の一例である。
 《医療機関内情報システムの例》
 図6は、医療情報処理システム10の処理サービスを利用する複数の医療機関の医療機関内情報システム300の例を示すブロック図である。図6では、図示を簡単にするために、複数の医療機関におけるそれぞれの医療機関内ネットワークに同様のシステム構成の医療機関内情報システム300が構築されている例を示すが、医療機関ごとに異なるシステム構成が採用され得る。
 医療機関内情報システム300は、モダリティ340と、DICOM(Digital Imaging and Communications in Medicine)サーバ350と、画像処理管理端末320Aと、ビューワ端末322と、電子カルテシステム324と、構内通信回線326とを含むコンピュータネットワークである。
 モダリティ340は、検査画像を撮影する装置である。モダリティ340には、被写体の検査対象部位を撮影することにより、その部位を表す検査画像を生成し、その画像にDICOM規格で規定された付帯情報を付加して出力する装置が含まれる。モダリティ340の具体例としては、CT装置(Computed Tomography:コンピュータ断層撮影装置)、MRI装置(magnetic resonance imaging:磁気共鳴画像撮影装置)、血管造影X線診断装置、PET装置(Positron Emission Tomography:陽電子放射断層撮影装置)、超音波装置、平面X線検出器(Flat Panel Detector:FPD)を用いたCR装置(Computed Radiography:コンピュータX線撮影装置)、マンモグラフィ装置、および内視鏡装置等が挙げられる。
 医療機関内情報システム300には、複数種類のモダリティ340が含まれてもよい。医療機関内ネットワーク上に存在するモダリティ340の種類および台数は、医療機関ごとに様々な組み合わせがありうる。
 DICOMサーバ350は、DICOMの仕様にて動作するサーバである。DICOMサーバ350は、モダリティ340を用いて撮影された画像を含む各種データを保存および管理するコンピュータであり、大容量外部記憶装置およびデータベース管理用プログラムを備えている。DICOMサーバ350は、構内通信回線326を介して他の装置と通信を行い、画像データを含む各種データを送受信する。DICOMサーバ350は、モダリティ340によって生成された画像データその他の含む各種データを構内通信回線326経由で受信し、大容量外部記憶装置等の記録媒体に保存して管理する。
 画像処理管理端末320Aは、利用端末30として機能する情報処理装置である。画像処理管理端末320Aは、医療情報処理システム10と通信するための通信機能を有し、通信回線20を介して医療情報処理システムと接続される。画像処理管理端末320Aは、構内通信回線326を介してDICOMサーバ350等からデータを取得することができる。また、画像処理管理端末320Aは、医療情報処理システムから取得した処理結果をDICOMサーバ350およびビューワ端末322に送ることができる。画像処理管理端末320Aは、ビューワ端末322と兼用されてもよい。
 DICOMサーバ350のデータベースに保存された各種データ、並びに画像処理管理端末320Aが取得した処理結果を含む様々な情報は、ビューワ端末322に表示させることができる。
 ビューワ端末322は、PACS(Picture Archiving and Communication Systems)ビューワ、あるいはDICOMビューワと呼ばれる画像閲覧用の端末である。医療機関内ネットワークには複数のビューワ端末322が接続され得る。ビューワ端末322の形態は特に限定されず、パーソナルコンピュータであってもよいし、ワークステーションであってもよく、また、タブレット端末などであってもよい。ビューワ端末322に組み込まれるソフトウェアは、専用の閲覧ソフトであってもよいし、Webブラウザーなどであってもよい。ビューワ端末322は、医療情報処理システム10にアクセスするための利用端末30として機能してもよい。
 医療情報処理システム10は、通信回線20を介して、各医療機関の画像処理管理端末320Aおよび/またはビューワ端末322と通信を行う。図1から図5を用いて説明したとおり、医療情報処理システム10は、複数の医療機関からの処理要求に応じて医療情報処理サービスを提供する。医療情報処理システム10を用いて実現される医療画像処理サービスの提供方法は本開示における「医療情報処理サービス提供方法」の一例である。
 《医療情報処理方法の例》
 図7から図9は、実施形態に係る医療情報処理システム10によって実行される医療情報処理方法の例を示すフローチャートである。図7から図9に示す各ステップは、医療情報処理システム10として機能するコンピュータによって実行される。医療情報処理システム10は、1台または複数台の物理マシンを含むコンピュータシステムによって実現され得る。また、医療情報処理システム10は、分散コンピューティングによって実現することができる。医療情報処理システム10として機能するコンピュータとは、1台のコンピュータに限らず、複数台のコンピュータの集合体である場合も含む。
 図7のステップS10において、医療情報処理システム10は、複数の医療機関の利用端末30から処理対象の医用画像と処理要求とを受け付ける。
 ステップS12において、処理要求分配制御部102は、処理要求を受信したか否かを判定する。ステップS12の判定結果がNo判定である場合、処理要求分配制御部102は、ステップS10に戻る。処理要求分配制御部102が処理要求を受信し、ステップS12の判定結果がYes判定である場合、ステップS14に進む。
 ステップS14において、処理要求分配制御部102は、受信した処理要求の種別を判定する。受信した処理要求が通常系処理要求である場合、処理要求分配制御部102はステップS16に進み、通常系処理要求を通常系処理要求キュー106に送る。
 その一方、ステップS14の種別判定の結果が救急系処理要求である場合、処理要求分配制御部102はステップS18に進み、救急系処理要求を救急系処理要求キュー108に送る。
 また、ステップS14の種別判定の結果が救急系処理要求である場合、計算資源使用状況制御部104は、ステップS20に示す処理モジュール増減制御を行う。ステップS20のサブルーチンについては図8を用いて後述する。
 ステップS16にて通常系処理要求キュー106に通常系処理要求がスタックされると、ステップS22において、順次に通常系処理要求が通常系処理モジュールNMに送られ、通常系処理モジュールNMにて通常系処理が行われる。
 一方、ステップS18にて救急系処理要求キュー108に救急系処理要求がスタックされると、ステップS24において、順次に救急系処理要求が救急系処理モジュールEMに送られ、救急系処理モジュールEMにて救急系処理が行われる。
 ステップS22およびステップS24にて稼働する通常系処理モジュールNMおよび救急系処理モジュールEMのそれぞれの処理モジュールの個数は、ステップS20の処理モジュール増減制御によって調整される。
 ステップS22またはステップS24の後、ステップS26において、医療情報処理システム10は、処理結果を要求元の医療機関の利用端末30に提供するために出力する。
 図7では、処理要求の受信から処理結果の送信までの1サイクルのフローチャートを示すが、図7のステップS26の後、医療情報処理システム10は、ステップS10に戻って、図7のフローチャートを繰り返してよい。
 図8は、図7のステップS20に適用されるサブルーチンの例を示すフローチャートである。
 ステップS202において、計算資源使用状況制御部104は、処理要求分配制御部102が受信した救急系処理要求数と、稼働中の救急系処理モジュールEMの個数から救急系処理要求に対する処理完了までの処理待ち時間を算出する。ステップS202にて算出される処理待ち時間は本開示における「第1の処理待ち時間」の一例である。
 ステップS204において、計算資源使用状況制御部104は、算出した処理待ち時間が閾値Th1を超えるか否かを判定する。閾値Th1は、許容可能な最大待ち時間(最大許容待ち時間)であり、具体的には、契約プランにおいて約束する最大許容待ち時間である。通常プランを契約している医療機関からの処理要求に対する閾値Th1をTh1_NPとし、高速プランを契約している医療機関からの処理要求に対する閾値Th1をTh1_HPとすると、Th1_HP<Th1_NPである。閾値Th1は本開示における「第1の許容待ち時間」の一例である。
 ステップS204の判定結果がYes判定である場合、計算資源使用状況制御部104は、ステップS206に進む。ステップS206において、計算資源使用状況制御部104は、契約プランで約束している最大許容待ち時間以内で処理完了するために追加が必要な救急系処理モジュールEMの個数を算出する。
 その後、ステップS208において、計算資源使用状況制御部104は、現状の計算サーバ台数のまま、通常系処理モジュールNMの一時停止で対応可能であるか否かを判定する。
 ステップS208の判定結果がYes判定である場合、計算資源使用状況制御部104は、ステップS210に進む。ステップS210において、計算資源使用状況制御部104は、稼働中の通常系処理モジュールの一部を一時停止させ、代わりに、ステップS212において、新たに必要個数の救急系処理モジュールEMを起動させる。
 一方、ステップS208の判定結果がNo判定である場合、計算資源使用状況制御部104は、ステップS216に進む。ステップS216において、計算資源使用状況制御部104は、一時停止中の通常系処理モジュールNMの個数が一時停止可能な上限数未満であるか否かを判定する。
 ステップS216の判定結果がYes判定である場合、計算資源使用状況制御部104は、ステップS220に進む。ステップS220において、計算資源使用状況制御部104は、稼働中の通常系処理モジュールNMを上限数まで一時停止させ、代わりに、ステップS222において、新たに救急系処理モジュールEMを起動させる。
 ステップS222の後、計算資源使用状況制御部104は、ステップS234に進む。また、ステップS216の判定結果がNo判定である場合もステップS234に進む。
 計算資源使用状況制御部104は、計算サーバの追加が必要な場合の追加動作のタイミングを早めるために、ステップS202の処理と並行してステップS230において、救急系処理要求数の増加率を監視している。処理要求数の増加率は、単位時間当たりの処理要求の受信数から求めることができる。
 ステップS232において、計算資源使用状況制御部104は、救急系処理要求数の増加率が閾値Th2を超えているか否かを判定する。閾値Th2は、通常プランと高速プランとで異なる閾値が設定されてよい。通常プランを契約している医療機関からの救急系処理要求数の増加率に対する閾値Th2をTh2_NPとし、高速プランを契約している医療機関からの救急系処理要求数の増加率に対する閾値Th2をTh2_HPとすると、Th2_HP<Th2_NPであってよい。
 ステップS232の判定結果がNo判定である場合、計算資源使用状況制御部104はステップS204に進む。なお、計算資源使用状況制御部104は、ステップS232の判定結果がNo判定である場合にステップS204に進む代わりに、ステップS230に戻ってもよい。
 一方、ステップS232の判定結果がYes判定である場合、計算資源使用状況制御部104は、ステップS234に進む。
 ステップS234において、計算資源使用状況制御部104は、計算サーバの追加が可能か否かを判定する。計算サーバを追加できる台数には上限が定められており、計算資源使用状況制御部104は、その上限の範囲内で、計算サーバのさらなる追加が可能か否かを判定する。
 ステップS234の判定結果がYes判定である場合、計算資源使用状況制御部104は、ステップS236に進み、計算サーバを追加する。そして、ステップS238において、計算資源使用状況制御部104は、追加した計算サーバ上で新たに救急系処理モジュールを起動させる。
 ステップS212またはステップS238の後、図8のフローチャートを終了し、図7のフローチャートに復帰する。
 また、ステップS234の判定結果がNo判定である場合、計算サーバの追加ができないため、図8のフローチャートを終了し、図7のフローチャートに復帰する。
 図9は、救急系処理要求の需要減に対応した救急系処理モジュールEMの個数削減制御の例を示すフローチャートである。図9のフローチャートは、救急系処理モジュールEMを追加する処理を行った場合に実行される。
 ステップS40において、計算資源使用状況制御部104は、処理待ち受け状態の救急系処理モジュールEMの個数と、それらの待機状態継続時間とを取得する。
 ステップS42において、計算資源使用状況制御部104は、規定個数以上の救急系処理モジュールEMが処理待ち受け状態のまま規定時間以上維持されたか否かを判定する。
 ステップS42の判定結果がNo判定である場合、計算資源使用状況制御部104は、現状の救急系処理モジュールEMの個数を維持し、ステップS40に戻る。
 ステップS42の判定結果がYes判定である場合、計算資源使用状況制御部104は、余剰な救急系処理モジュールEMを停止させるために、ステップS44に進む。
 ステップS44において、計算資源使用状況制御部104は、救急系処理要求の需要増への対処のために一時停止している通常系処理モジュールNMが存在するか否かを判定する。
 ステップS44の判定結果がYes判定である場合、計算資源使用状況制御部104は、一時停止した通常系処理モジュールNMの代わりに起動させた救急系処理モジュールを停止させる。そして、ステップS48において、計算資源使用状況制御部104は、一時停止している通常系処理モジュールを再開させる。ステップS48の後、計算資源使用状況制御部104はステップS40に戻る。
 一方、ステップS44の判定結果がNo判定である場合、計算資源使用状況制御部104は、ステップS50に進み、追加した計算サーバの単位で救急系処理モジュールEMを停止可能か否かを判定する。
 ステップS50の判定結果がNo判定である場合、計算資源使用状況制御部104は、ステップS40に戻る。ステップS50の判定結果がYes判定である場合、計算資源使用状況制御部104は、ステップS52に進み、余剰な救急系処理モジュールEMが展開されている計算サーバについて、計算サーバの単位で(N個の単位で)救急系処理モジュールEMを停止させ、計算サーバを停止させる。
 その後、ステップS54において、計算資源使用状況制御部104は、追加した計算サーバを全て停止させたか否かを判定する。ステップS54の判定結果がNo判定である場合、計算資源使用状況制御部104はステップS40に戻る。一方、ステップS54の判定結果がYes判定である場合、図9のフローチャートを終了する。
 なお、一時停止させた通常系処理モジュールNMを再開させるか否かの判定の際に適用される判定基準となる処理待ち受け状態の救急系処理モジュールENの規定個数および規定時間(第1の規定個数および第1の規定時間)は、追加した計算サーバを停止させるか否かの判定の際に適用される判定基準となる処理待ち受け状態の救急系処理モジュールENの規定個数および規定時間(第2の規定個数および第2の規定時間)と同じ設定であってもよいし、異なる設定であってもよい。
 《コンピュータのハードウェア構成の例》
 図10は、コンピュータのハードウェア構成の例を示すブロック図である。コンピュータ800は、サーバコンピュータであってもよいし、パーソナルコンピュータであってもよいし、ワークステーションであってもよい。コンピュータ800は、既に説明した医療情報処理システム10、利用端末30、DICOMサーバ350、電子カルテシステム324、画像処理管理端末320A、ビューワ端末322のいずれかの一部または全部、あるいはこれらの複数の機能を備えた装置として用いることができる。
 コンピュータ800は、CPU(Central Processing Unit)802、RAM(Random Access Memory)804、ROM(Read Only Memory)806、GPU(Graphics Processing Unit)808、ストレージ810、通信部812、入力装置814、表示装置816およびバス818を備える。なお、GPU808は、必要に応じて設ければよい。
 CPU802は、ROM806またはストレージ810等に記憶された各種のプログラムを読み出し、プログラムの命令に従い、各種の処理を実行する。RAM804は、CPU802の作業領域として使用される。また、RAM804は、読み出されたプログラムおよび各種のデータを一時的に記憶する記憶部として用いられる。
 ストレージ810は、例えば、ハードディスク装置、光ディスク、光磁気ディスク、もしくは半導体メモリ、またはこれらの適宜の組み合わせを用いて構成される記憶装置を含んで構成される。ストレージ810には、各種プログラムやデータ等が記憶される。ストレージ810に記憶されているプログラムがRAM804にロードされ、これをCPU802が実行することにより、コンピュータ800は、プログラムで規定される各種の処理を行う手段として機能する。
 通信部812は、有線または無線により外部装置との通信処理を行い、外部装置との間で情報のやり取りを行うインターフェースである。通信部812は、処理対象のデータおよび処理要求等の入力を受け付ける情報取得部としての役割を担うことができる。また、通信部812は、処理結果等を出力する情報出力部としての役割を担うことができる。
 入力装置814は、コンピュータ800に対する各種の操作入力を受け付ける入力インターフェースである。入力装置814は、例えば、キーボード、マウス、マルチタッチパネル、もしくはその他のポインティングデバイス、もしくは、音声入力装置、またはこれらの適宜の組み合わせであってよい。
 表示装置816は、各種の情報が表示される出力インターフェースである。表示装置816は、例えば、液晶ディスプレイ、有機EL(organic electro-luminescence:OEL)ディスプレイ、もしくは、プロジェクタ、またはこれらの適宜の組み合わせであってよい。
 《コンピュータを動作させるプログラムについて》
 上記の実施形態で説明した医療情報処理システム10における各種の処理機能のうち少なくとも1つの処理機能の一部または全部をコンピュータに実現させるプログラムを、光ディスク、磁気ディスク、もしくは、半導体メモリその他の有体物たる非一時的な情報記憶媒体であるコンピュータ可読媒体に記録し、この情報記憶媒体を通じてプログラムを提供することが可能である。
 またこのような有体物たる非一時的なコンピュータ可読媒体にプログラムを記憶させて提供する態様に代えて、インターネットなどの電気通信回線を利用してプログラム信号をダウンロードサービスとして提供することも可能である。
 《各処理部のハードウェア構成について》
 医療情報処理システム10における処理要求分配制御部102、計算資源使用状況制御部104、通常系処理要求キュー106、救急系処理要求キュー108、通常系処理モジュールNMおよび救急系処理モジュールEMなどの各種の処理を実行する処理部(processing unit)のハードウェア的な構造は、例えば、次に示すような各種のプロセッサ(processor)である。
 各種のプロセッサには、プログラムを実行して各種の処理部として機能する汎用的なプロセッサであるCPU、画像処理に特化したプロセッサであるGPU、FPGA(Field Programmable Gate Array)などの製造後に回路構成を変更可能なプロセッサであるプログラマブルロジックデバイス(Programmable Logic Device:PLD)、ASIC(Application Specific Integrated Circuit)などの特定の処理を実行させるために専用に設計された回路構成を有するプロセッサである専用電気回路などが含まれる。
 1つの処理部は、これら各種のプロセッサのうちの1つで構成されていてもよいし、同種または異種の2つ以上のプロセッサで構成されてもよい。例えば、1つの処理部は、複数のFPGA、あるいは、CPUとFPGAの組み合わせ、またはCPUとGPUの組み合わせによって構成されてもよい。また、複数の処理部を1つのプロセッサで構成してもよい。複数の処理部を1つのプロセッサで構成する例としては、第一に、クライアントやサーバなどのコンピュータに代表されるように、1つ以上のCPUとソフトウェアの組み合わせで1つのプロセッサを構成し、このプロセッサが複数の処理部として機能する形態がある。第二に、システムオンチップ(System On Chip:SoC)などに代表されるように、複数の処理部を含むシステム全体の機能を1つのIC(Integrated Circuit)チップで実現するプロセッサを使用する形態がある。このように、各種の処理部は、ハードウェア的な構造として、上記各種のプロセッサを1つ以上用いて構成される。
 さらに、これらの各種のプロセッサのハードウェア的な構造は、より具体的には、半導体素子などの回路素子を組み合わせた電気回路(circuitry)である。
 《本実施形態による利点》
 実施形態に係る医療情報処理システム10によれば、次のような利点がある。
 [1]救急系処理要求の需要の増減に応じて、稼働する通常系処理モジュールNMの個数と救急系処理モジュールEMの個数とを動的に調整することができる。これにより、使用する計算資源の最適化を図ることができ、サーバ運用費をできるだけ抑えつつ、救急系処理と、通常系処理との双方について、それぞれの最大許容待ち時間以内に処理結果を返すことが可能である。
 [2]通常プランと高速プランとの2種類のプランを用意することで、処理待ち時間のさらなる短縮を希望する医療機関のニーズに応えることができる。
 《その他》
 以上説明した本発明の実施形態は、本発明の趣旨を逸脱しない範囲で、適宜構成を変更、追加、または削除することが可能である。本発明は以上説明した実施形態に限定されるものではなく、本発明の技術的思想内で当該分野の通常の知識を有する者により、多くの変形が可能である。
10 医療情報処理システム
20 通信回線
26 構内通信回線
30 利用端末
40 モダリティ
50 DICOMサーバ
102 処理要求分配制御部
104 計算資源使用状況制御部
106 通常系処理要求キュー
108 救急系処理要求キュー
300 医療機関内情報システム
320A 画像処理管理端末
322 ビューワ端末
324 電子カルテシステム
326 構内通信回線
340 モダリティ
350 DICOMサーバ
800 コンピュータ
802 CPU
804 RAM
806 ROM
808 GPU
810 ストレージ
812 通信部
814 入力装置
816 表示装置
818 バス
VM0,VM1,VMk 仮想マシン
NM 通常系処理モジュール
NM1,NM2,NMN 通常系処理モジュール
EM 救急系処理モジュール
EM1,EM2,EMN 救急系処理モジュール
NPS1,NPS2,NPSM,NPSM+1 通常プラン用サーバ(計算サーバ)
HPS1,HPSM 高速プラン用サーバ(計算サーバ)
MI1,MI2,MIL 医療機関
S10~S26 実施形態に係る医療情報処理方法のステップ
S202~S238 処理モジュール増減制御のステップ
S40~S54 救急系処理要求の需要減に対応した救急系処理モジュールの個数削減制御のステップ

Claims (14)

  1.  処理対象の医療情報と処理要求とを受け付け、前記処理要求に応じた処理を実行して処理結果を出力する医療情報処理システムは、
     1つ以上のプロセッサを備え、
     プロセッサは、複数の仮想マシンを構成し、
     前記処理要求を受け取り、前記処理要求が非救急に分類される処理を求める非救急系処理要求であるか、救急に分類される処理を求める救急系処理要求であるかに応じて、前記処理要求を非救急系処理要求キューまたは救急系処理要求キューに振り分ける処理要求分配し、
     前記非救急系処理要求キューを監視し、前記非救急系処理要求キューにスタックされた前記非救急系処理要求の指示内容に対応した非救急系の処理を行い、
     前記救急系処理要求キューを監視し、前記救急系処理要求キューにスタックされた前記救急系処理要求の指示内容に対応した救急系の処理を行い、
     前記受け取った救急系処理要求の数と稼働中の前記救急系処理の数とに基づき、稼働させる前記非救急系処理の数と前記救急系処理の数とを制御する計算資源使用状況制御を行い、
     前記計算資源使用状況制御は、稼働中の複数の前記非救急系処理のうちの一部を一時停止させ、かつ、新たに前記救急系処理を起動させて前記救急系処理の数を増加させる処理を含む、
     医療情報処理システム。
  2.  プロセッサは、
     前記受け取った救急系処理要求の数と前記稼働中の救急系処理の数とから、前記救急系処理要求に対する処理完了までの第1の処理待ち時間を計算し、前記第1の処理待ち時間が第1の許容待ち時間を超える場合に、前記第1の処理待ち時間を前記第1の許容待ち時間以内に収めるために前記救急系処理の数を増加させる、
     請求項1に記載の医療情報処理システム。
  3.  プロセッサは、
     、前記非救急系処理要求に対する処理完了までの第2の待ち時間が第2の許容待ち時間以内に収まる範囲で前記救急系処理を一時停止させてよい数の上限を動的に計算し、前記上限を超えない数の前記非救急系処理を一時停止させ、代わりに前記救急系処理を新たに起動させる、
     請求項1または2に記載の医療情報処理システム。
  4.  プロセッサは、
     、前記救急系処理の数を増加させるために、前記仮想マシンの台数を増加させ、追加した仮想マシン上で複数の前記救急系処理を新たに起動させる、
     請求項1から3のいずれか一項に記載の医療情報処理システム。
  5.  プロセッサは、
     前処理待機中の前記救急系処理の数が規定数以上である状態が規定時間以上維持された場合に、前記救急系処理の数を減少させる、
     請求項1から4のいずれか一項に記載の医療情報処理システム。
  6.  プロセッサは、
     処理待機中の前記救急系処理の数が第1の規定数以上である状態が第1の規定時間以上維持された場合に、前記非救急系処理の一時停止を伴って追加した前記救急系処理の数を減少させ、かつ、前記一時停止させていた前記非救急系処理を再開させる、
     請求項1から4のいずれか一項に記載の医療情報処理システム。
  7.  プロセッサは、
     処理待機中の前記救急系処理の数が第2の規定数以上である状態が第2の規定時間以上維持された場合に、前記追加した仮想マシン上の前記救急系処理の数を減少させ、前記追加した仮想マシンの台数を減少させる、
     請求項4に記載の医療情報処理システム。
  8.  プロセッサは、
     処理待機中の前記救急系処理の数が第1の規定数以上である状態が第1の規定時間以上維持された場合に、前記非救急系処理の一時停止を伴って追加した前記救急系処理の数を減少させ、かつ、前記一時停止させていた前記非救急系処理を再開させ、
     前記一時停止させていた前記非救急系処理をすべて再開させた後に、
     前記追加した仮想マシン上の前記救急系処理の数を減少させ、前記追加した仮想マシンの台数を減少させる、
     請求項4に記載の医療情報処理システム。
  9.  プロセッサは、
     前記非救急系処理要求および前記救急系処理要求のそれぞれについて、処理要求を受け付けた場合の現在の処理待ち時間を計算し、前記現在の処理待
    ち時間の情報を、医療機関の利用端末に提供する、
     請求項1から8のいずれか一項に記載の医療情報処理システム。
  10.  プロセッサは、
     前記非救急系処理要求に対する処理完了までの最大待ち時間が第3の待ち時間であり、前記救急系処理要求に対する処理完了までの最大待ち時間が前記第3の待ち時間よりも短い第4の待ち時間であることを約束する第1のプランと、
     前記非救急系処理要求に対する処理完了までの最大待ち時間および前記救急系処理要求に対する処理完了までの最大待ち時間の少なくとも一方が前記第1のプランの最大待ち時間よりも短い待ち時間であることを約束する第2のプランと、
     を用意し、
     前記第1のプランを選択している医療機関からの処理要求の処理に割り当てられる第1のプラン用の前記非救急系処理、前記救急系処理および前記仮想マシンに加え、
     前記第2のプランを選択している医療機関からの処理要求の処理に割り当てられる第2のプラン用の前記非救急系処理、前記救急系処理および前記仮想マシンを備える、
     請求項1から9のいずれか一項に記載の医療情報処理システム。
  11.  プロセッサは、
     前記第2のプランを選択する医療機関の数の増減に応じて、前記第2のプラン用の前記非救急系処理の数、前記救急系処理の数および前記仮想マシンの台数を増減させる、
     請求項10に記載の医療情報処理システム。
  12.  請求項1から11のいずれか一項に記載の医療情報処理システムを用いて実施される医療情報処理サービス提供方法であって、
     医療情報処理システムが
     通信回線を介して複数の医療機関から前記処理要求を受け付け、
     前記処理要求に対応する処理を実行して処理結果を前記処理要求の要求元の医療機関に返す、処理を含む
     医療情報処理サービス提供方法。
  13.  コンピュータが処理対象の医療情報と処理要求とを受け付け、前記処理要求に応じた処理を実行して処理結果を出力する処理を行うために前記コンピュータによって実行される医療情報処理方法であって、
     前記コンピュータ上に複数の仮想マシンを構成し、
     前記処理要求を受け取り、前記処理要求が非救急に分類される処理を求める非救急系処理要求であるか、救急に分類される処理を求める救急系処理要求であるかに応じて、前記処理要求を非救急系処理要求キューまたは救急系処理要求キューに振り分ける第1の制御を行い、
     前記非救急系処理要求キューを監視し、前記非救急系処理要求キューにスタックされた前記非救急系処理要求の指示内容に対応した非救急系の処理を行う非救急系処理を行うことと、
     前記救急系処理要求キューを監視し、前記救急系処理要求キューにスタックされた前記救急系処理要求の指示内容に対応した救急系の処理を行う救急系処理を行い、
     前記受け取った前記救急系処理要求の数と稼働中の前記救急系処理の数とに基づき、稼働させる前記非救急系処理の数と前記救急系処理の数とを制御する第2の制御を行うことと、を含み、
     前記第2の制御は、稼働中の複数の前記非救急系処理のうちの一部を停止させ、かつ、新たに前記救急系処理を起動させて前記救急系処理の数を増加させる、処理を含む、
     医療情報処理方法。
  14.  コンピュータが処理対象の医療情報と処理要求とを受け付け、前記処理要求に応じた処理を実行して処理結果を出力する処理を前記コンピュータに実現させるためプログラムであって、
     前記コンピュータ上に複数の仮想マシンを構成し、
     前記処理要求を受け取り、前記処理要求が非救急に分類される処理を求める非救急系処理要求であるか、救急に分類される処理を求める救急系処理要求であるかに応じて、前記処理要求を非救急系処理要求キューまたは救急系処理要求キューに振り分ける第1の制御機能と、
     前記非救急系処理要求キューを監視し、前記非救急系処理要求キューにスタックされた前記非救急系処理要求の指示内容に対応した非救急系の処理を行う非救急系処理の機能と、
     前記救急系処理要求キューを監視し、前記救急系処理要求キューにスタックされた前記救急系処理要求の指示内容に対応した救急系の処理を行う救急系処理の機能と、
     前記第1の制御機能により受け取った前記救急系処理要求の数と稼働中の前記救急系処理の数とに基づき、稼働させる前記非救急系処理の数と前記救急系処理の数とを制御する第2の制御機能と、を実現させ、
     前記第2の制御機能は、稼働中の複数の前記非救急系処理のうちの一部を停止させ、かつ、新たに前記救急系処理を起動させて前記救急系処理の数を増加させる機能を含む、
     プログラム。
PCT/JP2022/004575 2021-03-24 2022-02-07 医療情報処理システムおよび方法、医療情報処理サービス提供方法ならびにプログラム WO2022201908A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
DE112022000944.6T DE112022000944T5 (de) 2021-03-24 2022-02-07 Verarbeitungssystem für medizinische informationen und verarbeitungsverfahren für medizinische informationen, bereitstellungsverfahren von verarbeitungsdienst für medizinische informationen und programm
JP2023508746A JPWO2022201908A1 (ja) 2021-03-24 2022-02-07
US18/460,581 US20230409390A1 (en) 2021-03-24 2023-09-03 Medical information processing system and medical information processing method, medical information processing service providing method, and program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2021-050337 2021-03-24
JP2021050337 2021-03-24

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US18/460,581 Continuation US20230409390A1 (en) 2021-03-24 2023-09-03 Medical information processing system and medical information processing method, medical information processing service providing method, and program

Publications (1)

Publication Number Publication Date
WO2022201908A1 true WO2022201908A1 (ja) 2022-09-29

Family

ID=83395460

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2022/004575 WO2022201908A1 (ja) 2021-03-24 2022-02-07 医療情報処理システムおよび方法、医療情報処理サービス提供方法ならびにプログラム

Country Status (4)

Country Link
US (1) US20230409390A1 (ja)
JP (1) JPWO2022201908A1 (ja)
DE (1) DE112022000944T5 (ja)
WO (1) WO2022201908A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006285596A (ja) * 2005-03-31 2006-10-19 Nec Corp エミュレーション装置、プログラム及び方法
JP2015060279A (ja) * 2013-09-17 2015-03-30 株式会社日立システムズ スケール制御サーバ、スケール制御方法、およびスケール制御プログラム
JP2020154530A (ja) * 2019-03-19 2020-09-24 Necソリューションイノベータ株式会社 リソース管理装置、ユーザ装置側リソース管理装置、リソース管理方法、ユーザ装置側リソース管理方法、プログラム及び記録媒体

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018092311A (ja) 2016-12-01 2018-06-14 キヤノン株式会社 情報処理装置、その制御方法、及びプログラム
JP2020024636A (ja) 2018-08-08 2020-02-13 株式会社Preferred Networks スケジューリング装置、スケジューリングシステム、スケジューリング方法及びプログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006285596A (ja) * 2005-03-31 2006-10-19 Nec Corp エミュレーション装置、プログラム及び方法
JP2015060279A (ja) * 2013-09-17 2015-03-30 株式会社日立システムズ スケール制御サーバ、スケール制御方法、およびスケール制御プログラム
JP2020154530A (ja) * 2019-03-19 2020-09-24 Necソリューションイノベータ株式会社 リソース管理装置、ユーザ装置側リソース管理装置、リソース管理方法、ユーザ装置側リソース管理方法、プログラム及び記録媒体

Also Published As

Publication number Publication date
DE112022000944T5 (de) 2023-12-14
US20230409390A1 (en) 2023-12-21
JPWO2022201908A1 (ja) 2022-09-29

Similar Documents

Publication Publication Date Title
US9075659B2 (en) Task allocation in a computer network
Yang et al. Accessing medical image file with co-allocation HDFS in cloud
US8424010B2 (en) Shared resource management
US20110154355A1 (en) Method and system for resource allocation for the electronic preprocessing of digital medical image data
US20120324111A1 (en) Task allocation in a computer network
Yang et al. Implementation of a medical image file accessing system in co-allocation data grids
US20150154778A1 (en) Systems and methods for dynamic image rendering
US20240168812A1 (en) Managing computer resources for clinical applications
JP2022000814A (ja) アプリケーション提供装置、アプリケーション提供方法、およびアプリケーション提供プログラム
US11900601B2 (en) Loading deep learning network models for processing medical images
US20080133271A1 (en) Job dispatcher for medical intelligent server architecture
US8185904B2 (en) Image reconstruction system with multiple parallel reconstruction pipelines
US20060269106A1 (en) System and method for optimizing throughput of medical evidence data to and from long term digital storage solutions
JP5151509B2 (ja) 仮想マシンシステム及びそれに用いる仮想マシン分散方法
WO2022201908A1 (ja) 医療情報処理システムおよび方法、医療情報処理サービス提供方法ならびにプログラム
KR20180135645A (ko) 가상 데스크탑 통합 운영 장치 및 방법
WO2016142294A1 (en) A data processing system and the related method for displaying medical images
Meenatchi Aparna et al. A survey of medical imaging, storage and transfer techniques
JP2019079355A (ja) 読影管理システム及び読影管理方法
JP2008071039A (ja) 画像管理装置及び画像管理システム
CN113689518B (zh) 图像重建方法、装置、计算机设备和存储介质
JPWO2022201908A5 (ja)
CN112885447B (zh) 一种基于医联体会诊的医生排班和分配方法及系统
US20230114843A1 (en) Medical image processing system, medical image processing method, image processing distributor, and program
Guarracino et al. Application oriented brokering in medical imaging: algorithms and software architecture

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22774709

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2023508746

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 112022000944

Country of ref document: DE

122 Ep: pct application non-entry in european phase

Ref document number: 22774709

Country of ref document: EP

Kind code of ref document: A1