Patent ID: 11887725
Assignee: R1 RCM INC.
Field: Computer technology (Electrical engineering)
Classification: CPC G | IPC G

Claim 9:
10. A method comprising:
generating, by at least one processor of a resource orchestrator of at least one interface gateway configured to interface with at least one client device and a plurality of resource platforms, an abstracted query about a plurality of resources managed by a plurality of resource platforms;
wherein the abstracted query is for at least:
each respective resource of the plurality of resources,
an availability of each respective resource of the plurality of resources, and
a capability of each respective resource of the plurality of resources;

identifying, by the at least one processor, a plurality of application programming interfaces maintained by a normalization layer for querying the plurality of resource platforms about the plurality of resources managed by the plurality of resource platforms;
wherein the plurality of application programming interfaces are defined by a plurality of resource selection questionnaire templates specific to each respective resource platform of the plurality of resource platforms;

generating, by the at least one processor, a respective normalized application programming interface call to each respective resource platform of the plurality of resource platforms by modifying the abstracted query for each respective resource platform of the plurality of resource platforms based on each respective application programming interface of a plurality of application programming interfaces;
wherein a normalized application programming interface call is for at least:
the plurality of resources,
the availability of the plurality of resources, and
the capability of the plurality of resources;

receiving, by the at least one processor, responsive to the respective normalized application programming interface call to each of the plurality of resource platforms, a respective unstructured response from each of the plurality of resource platforms,
wherein the respective unstructured response is indicative of at least:
the plurality of resources,
the availability of the plurality of resources, and
the capability of the plurality of resources;

wherein the respective unstructured response from each of the plurality of resource platforms comprises platform-specific formatting;

for each respective resource platform:
accessing a respective platform-specific configuration associated with the respective resource platform;
parsing, based at least in part on the respective platform-specific configuration, the respective unstructured response to extract:
at least one entity name associated with the plurality of resources,
a type of each resource of the plurality of resources,
the availability of the plurality of resources, and
the capability of the plurality of resources;

generating, based on an entity relationship map, at least one respective platform identifier representative of the respective resource platform;
generating, based on the entity relationship map, at least one respective entity name identifier representative of the at least one entity name;
generating, based on the entity relationship map, at least one respective resource identifier representative of the type of each resource;

updating, by the at least one processor, a resource cache of the at least one interface gateway to store a plurality of resource objects by:
writing the at least one entity name of each respective resource platform to an entity name attribute associated with the at least one respective entity name identifier;
writing the availability and the capability of the plurality of resources of each respective resource platform to at least one resource object associated with the at least one respective resource identifier;
an availability property linking the at least one resource object to the at least one entity name based at least in part on the at least one respective entity name identifier, and

a capability property indicating the capability of the at least one respective resource identifier; and
linking the at least one resource object and the entity name attribute to each respective resource platform based at least in part on:
the at least one respective entity name identifier,
the at least one respective resource identifier, and
the at least one respective platform identifier;

receiving, by the at least one processor, a first resource request from a first client device of a first user;
wherein the first resource request comprises at least one first resource attribute defining a first requested resource;

querying, by the at least one processor, using the at least one first resource attribute, the resource cache to identify at least one first resource object having at least one first capability matching the at least one first resource attribute in response to the first resource request;
dynamically securing, by the at least one processor, in real-time, at least one first resource assignment to reserve at least one first resource associated with the at least one first resource object;
determining, by the at least one processor, a first resource platform associated with the at least one first resource object based at least in part on at least one first resource platform identifier linked to the at least one first resource object;
communicating, by the at least one processor, to the first resource platform the at least one first resource assignment;
receiving, by the at least one processor, a second resource request from a second client device of a second user;
wherein the second resource request comprises at least one second resource attribute defining a second requested resource;

querying, by the at least one processor, using the at least one second resource attribute, the resource cache to identify at least one second resource object having at least one second capability matching the at least one second resource attribute in response to the second resource request;
dynamically securing, by the at least one processor, in real-time, at least one second resource assignment to reserve at least one second resource associated with the at least one second resource object;
determining, by the at least one processor, a second resource platform associated with the at least one second resource object based at least in part on at least one second resource platform identifier linked to the at least one second resource object comprising at least one particular capability property; and
communicating, by the at least one processor, to the second resource platform the at least one second resource assignment.