Votre modèle de données pour la gestion du cycle des revenus
Votre modèle de données pour la gestion du cycle des revenus
- Attributs recommandés à collecter
- Activités clés à suivre
- Guide d’extraction pour le cycle de revenus d’Oracle Health
Attributs de la gestion du cycle des revenus
| Nom | Description | ||
|---|---|---|---|
| Événement de facturation BillingEvent | Identifiant unique d’une prestation ou de la livraison d’un produit générant des frais, qui sert d’identifiant de cas pour le processus de Revenue Cycle. | ||
| Description Le Billing Event sert d’identifiant de cas principal. Il relie toutes les activités, de la saisie des frais à la clôture du compte, pour un élément facturable donné. Chaque Billing Event représente une instance unique du processus de Revenue Cycle et permet de suivre son parcours à travers différentes étapes, telles que la soumission du claim, la comptabilisation du paiement et les éventuels refus ou ajustements. Dans une analyse de Process Mining, cet attribut est fondamental pour reconstituer le flux de bout en bout. Il permet de visualiser les variantes du processus, de calculer les durées de cycle entre les activités et d’identifier les goulots d’étranglement ou les écarts associés à des éléments facturables précis. Pourquoi c’est important Il s’agit de la clé essentielle pour suivre l’ensemble du cycle de vie d’une prestation facturable, et pour réaliser toutes les analyses du flux de processus et des performances. Où les obtenir Cet identifiant doit être une clé unique présente dans les tables principales de facturation ou de transactions de frais d’Oracle Health Revenue Cycle. Consultez la documentation du système pour identifier la clé primaire des événements de frais. Exemples BEVNT-987654321BEVNT-987654322BEVNT-987654323 | |||
| Horodatage de l’événement EventTimestamp | Date et heure précises auxquelles une activité a été enregistrée dans le système. | ||
| Description Cet attribut fournit l’horodatage de chaque activité et indique le moment exact où elle s’est produite. Il est essentiel pour comprendre le calendrier et la séquence des événements du Revenue Cycle associés à un Billing Event donné. Dans l’analyse, l’Event Timestamp sert à classer les activités par ordre chronologique, à calculer les durées et les temps de cycle entre les différentes étapes et à analyser les goulots d’étranglement. Il constitue le fondement de toutes les métriques temporelles du Process Mining, notamment pour repérer les retards entre « Claim Submitted » et « Remittance Received ». Pourquoi c’est important Cet horodatage est essentiel pour ordonner les événements, calculer toutes les métriques de performance, telles que les temps de cycle et les durées, et identifier les goulots d’étranglement du processus. Où les obtenir Chaque table de transactions ou de journaux d’événements d’Oracle Health Revenue Cycle doit comporter une colonne d’horodatage indiquant la création de l’enregistrement ou la survenue de l’événement. Exemples 2023-04-15T09:00:00Z2023-04-18T14:30:00Z2023-05-02T11:25:10Z | |||
| Nom de l’activité ActivityName | Nom de l’étape ou de l’événement précis survenu dans le processus de Revenue Cycle. | ||
| Description Cet attribut enregistre le nom de chaque activité réalisée au cours du cycle de vie d’un Billing Event. Il peut s’agir, par exemple, de « Charges Captured », « Claim Submitted To Payer » ou « Payment Posted ». Ces activités constituent les nœuds de la cartographie de processus découverte. L’analyse de la séquence et de la fréquence des activités est au cœur du Process Mining. Cet attribut aide à identifier les chemins les plus fréquents, à repérer les écarts par rapport à la procédure standard et à comprendre le déroulement opérationnel du Revenue Cycle. Pourquoi c’est important Il définit les étapes du processus, ce qui permet de visualiser la carte du processus et d’analyser les schémas du flux de travail. Où les obtenir Généralement dérivé des journaux d’événements, des enregistrements de changements de statut ou des tables de transactions propres aux différentes étapes du Revenue Cycle dans Oracle Health. Exemples Claim généréRemittance reçueRefus contestéCompte clôturé | |||
| Classe du patient PatientClass | Classification de l’encounter patient, par exemple Inpatient ou Outpatient. | ||
| Description Cet attribut catégorise le type de visite ou d’encounter du patient à l’origine des frais. Les classifications courantes comprennent Inpatient, Outpatient, Emergency et Recurring Patient. La classe du patient détermine souvent l’ensemble du processus de facturation et de soumission des claims. Les différentes classes de patients suivent des chemins distincts et sont soumises à des exigences de Conformité différentes. L’analyse du processus selon cet attribut aide à comprendre ces variations, à adapter les initiatives d’amélioration et à garantir l’application des procédures appropriées à chaque classe. Pourquoi c’est important Distingue les flux de processus, par exemple Inpatient et Outpatient, qui présentent des niveaux de complexité, des délais et des exigences de facturation différents. Où les obtenir Il s’agit d’un champ standard associé à un encounter patient ou à un enregistrement d’admission dans Oracle Health. Exemples HospitalisationSoins ambulatoiresUrgencesRécurrent | |||
| Code du motif de refus DenialReasonCode | Code normalisé indiquant le motif pour lequel une demande de remboursement a été refusée par le payeur. | ||
| Description Lorsqu’un payeur refuse une demande de remboursement, il fournit un code de motif expliquant ce refus, par exemple « Service non couvert » ou « Demande de remboursement en double ». Cet attribut enregistre ce code ainsi que sa description associée. L’analyse des motifs de refus est essentielle pour améliorer le cycle de revenus. Elle permet à l’organisation d’identifier les schémas récurrents, notamment les problèmes de codage ou d’éligibilité du patient, puis de mettre en place des mesures correctives afin d’éviter de nouveaux refus. Cela a un impact direct sur le taux de demandes de remboursement correctement constituées et réduit le coût des reprises. Pourquoi c’est important Fournit la cause racine des refus de demandes de remboursement, afin de cibler les améliorations, d’augmenter le taux de demandes correctement constituées et d’accélérer l’encaissement des revenus. Où les obtenir Ces informations sont reçues du payeur dans l’avis électronique de paiement (fichier ANSI 835) et doivent être enregistrées dans les tables des demandes de remboursement ou des avis de paiement d’Oracle Health. Exemples CO-16 : La demande de remboursement ou le service ne contient pas les informations nécessaires à son traitement.PR-96 : Frais non couverts.CO-18 : Demande de remboursement ou service en double. | |||
| Montant de l’ajustement AdjustmentAmount | Valeur monétaire des ajustements apportés au solde du compte. | ||
| Description Cet attribut enregistre le montant de tout ajustement financier, tel qu’une remise contractuelle, un passage en perte ou une correction, appliqué au Billing Event. Les ajustements réduisent directement les revenus attendus d’un frais. Le Dashboard « Account Adjustment Impact » s’appuie largement sur cet attribut. L’analyse des montants d’ajustement et des motifs associés aide à identifier les sources de fuite de revenus, les problèmes de gestion des contrats ou les difficultés liées à la saisie initiale des frais. Il s’agit d’un indicateur essentiel de la santé financière. Pourquoi c’est important Quantifie les fuites de revenus dues aux passages en perte ou aux corrections, et aide à identifier puis à traiter les causes profondes de l’érosion financière. Où les obtenir Ces informations se trouvent dans les tables de transactions financières qui enregistrent les ajustements ou les passages en perte appliqués au compte d’un patient. Exemples -50.25-120.0025.00 | |||
| Nom du payeur PayerName | Nom de la compagnie d’assurance ou du payeur tiers responsable du paiement. | ||
| Description Cet attribut identifie l’entité, telle qu’une compagnie d’assurance ou un programme public comme Medicare, à laquelle la prestation est facturée. Les informations sur le payeur sont fondamentales pour l’analyse du Revenue Cycle. L’analyse du processus par payeur peut révéler des écarts importants dans les délais de paiement, les taux de refus et les taux de réussite des recours. Elle aide à identifier les payeurs à l’origine de retards ou de pertes de revenus et est essentielle à la gestion efficace des contrats et des relations avec les payeurs. Pourquoi c’est important Permet de segmenter le processus par payeur et de révéler les comportements, les taux de refus et les vitesses de paiement propres à chacun, ce qui est essentiel pour la performance financière. Où les obtenir Cette information est stockée dans les dossiers de facturation ou d’assurance du patient au sein d’Oracle Health Revenue Cycle. Exemples AetnaBlue Cross Blue ShieldUnitedHealthcareMedicareCigna | |||
| Service de facturation BillingDepartment | Service ou équipe fonctionnelle responsable de l’activité. | ||
| Description Cet attribut précise le service, par exemple « Charge Capture », « Coding » ou « Collections », qui a réalisé l’activité. Il fournit un contexte organisationnel au flux du processus. L’analyse du processus sous l’angle des services est essentielle pour comprendre les transferts entre équipes et repérer les inefficacités interfonctionnelles. Elle alimente le Dashboard « Billing Department Workload » en permettant d’agréger les activités et les métriques de performance au niveau du service. Pourquoi c’est important Affecte les activités aux unités organisationnelles, ce qui est essentiel pour analyser les transferts entre services, la charge de travail et la performance des équipes. Où les obtenir Cette information peut être stockée directement dans les données de profil utilisateur d’Oracle Health ou déduite de l’utilisateur ou du type d’activité. Exemples Accès des patientsCodageFacturationRecouvrement | |||
| Solde restant dû OutstandingBalance | Solde impayé restant pour le Billing Event à un moment donné. | ||
| Description Cet attribut indique le montant actuellement dû pour un Billing Event après l’application de tous les paiements et ajustements. Il représente les comptes clients actifs associés à ces frais. Il s’agit d’un attribut essentiel du Dashboard « Outstanding Balance Aging ». L’analyse de cette valeur dans le temps aide à suivre la vitesse des encaissements, à évaluer l’efficacité des efforts de recouvrement et à calculer des KPI financiers importants, tels que le délai moyen de recouvrement (DSO). Pourquoi c’est important Suit les comptes clients en cours pour chaque cas, ce qui est essentiel à la gestion de la trésorerie et à l’analyse de l’efficacité du recouvrement. Où les obtenir Cette valeur est généralement calculée à partir de la somme de toutes les transactions financières (frais, paiements, ajustements) associées à un événement de facturation donné. Elle peut figurer comme champ dans une table récapitulative des comptes. Exemples 75.000.00550.80 | |||
| Utilisateur UserPerformingAction | Identifiant ou nom de l’utilisateur ayant réalisé l’activité. | ||
| Description Cet attribut identifie le collaborateur ou l’utilisateur système automatisé responsable de l’exécution d’une activité donnée du processus. Il est essentiel pour comprendre la répartition de la charge, évaluer la performance des Ressources et repérer les besoins de formation. Dans l’analyse, cet attribut permet de filtrer la cartographie du processus par utilisateur ou par équipe, de comparer les performances entre différentes Ressources et d’analyser la charge de travail pour le Dashboard « Billing Department Workload ». Il peut aider à identifier les personnes les plus performantes ou celles qui ont besoin d’un accompagnement ou d’une formation complémentaire. Pourquoi c’est important Relie les activités du processus à des utilisateurs ou à des équipes précis, ce qui permet d’analyser la charge de travail, de comparer les performances et d’identifier les possibilités de formation. Où les obtenir Les champs d’identifiant utilisateur, par exemple « CREATED_BY » ou « USER_ID », sont généralement présents dans les tables de transactions des différents modules Oracle Health. Exemples j.doeasmithBillingBot_AUTOk.williams | |||
| Dernière mise à jour des données LastDataUpdate | Horodatage indiquant la dernière actualisation ou extraction des données associées à cet événement. | ||
| Description Cet attribut indique la date de la dernière mise à jour du jeu de données. Il précise l’actualité des données analysées, un élément important pour évaluer la pertinence temporelle des résultats issus de l’analyse de Process Mining. Les utilisateurs peuvent vérifier cet attribut pour s’assurer qu’ils consultent les informations les plus récentes sur le processus. Il aide à évaluer l’ancienneté des données et constitue un élément important de la gouvernance des données et de l’assurance qualité. Pourquoi c’est important Indique l’actualité des données et garantit que les analyses et les décisions reposent sur des informations à jour. Où les obtenir Il s’agit d’un champ de métadonnées généralement créé et renseigné lors du processus ETL qui charge les données dans la plateforme de Process Mining. Exemples 2023-10-27T02:00:00Z2023-10-28T02:00:00Z | |||
| Est automatisé IsAutomated | Indicateur précisant si l’activité a été exécutée par un système automatisé ou par un utilisateur humain. | ||
| Description Cet attribut booléen distingue les activités exécutées par une automatisation logicielle, comme des bots ou des traitements système par lots, de celles réalisées manuellement par un utilisateur. Par exemple, « Demande de remboursement générée » peut être une étape automatisée, tandis que « Refus contesté » est probablement une étape manuelle. L’analyse de cet attribut aide à comprendre le niveau d’automatisation du processus et son impact sur l’efficacité et le taux d’erreur. Elle permet de comparer les performances des parcours automatisés et manuels, ainsi que d’identifier de nouvelles possibilités d’automatisation. Pourquoi c’est important Distingue les activités réalisées par des personnes de celles pilotées par le système, ce qui est essentiel pour analyser l’efficacité de l’automatisation et identifier de nouvelles possibilités dans ce domaine. Où les obtenir Cet indicateur est généralement déduit de l’attribut UserPerformingAction. Par exemple, les activités exécutées par des identifiants utilisateur tels que « SYSTEM » ou « RPA_BOT » sont signalées comme automatisées. Exemples truefalse | |||
| Est une reprise IsRework | Indicateur identifiant les activités correspondant à une reprise ou à un effort répété. | ||
| Description Cet attribut calculé signale les activités qui s’écartent du « happy path » idéal et constituent une reprise. Il peut s’agir, par exemple, de « Demande de remboursement corrigée et soumise » ou de « Refus contesté », qui ne se produiraient pas si le processus se déroulait correctement dès la première tentative. L’identification et la quantification des reprises constituent un objectif important du Process Mining. Cet indicateur facilite le filtrage et l’analyse de toutes les boucles de reprise, afin d’en mesurer la fréquence, le coût et les causes. Il est essentiel pour comprendre le coût réel de la qualité dans le cycle de revenus. Pourquoi c’est important Aide à quantifier la fréquence et l’impact des boucles de reprise, en mettant en évidence les inefficacités du processus et le coût de la non-qualité. Où les obtenir Il s’agit d’un attribut dérivé. Il est calculé lors de la transformation des données, en appliquant une logique métier qui signale certains noms d’activités comme des reprises. Exemples truefalse | |||
| Heure de fin de l’événement EventEndTime | Horodatage indiquant la fin d’une activité, lorsqu’il est disponible. | ||
| Description Alors que StartTime indique le début d’une activité, EventEndTime en indique la fin. Toutes les activités ne disposent pas d’une heure de fin distincte, car beaucoup sont des événements instantanés. Toutefois, pour les activités qui ont une durée, comme « Denial Appealed », dont le traitement peut prendre du temps, ce champ est très utile. Cet attribut permet de calculer plus précisément la durée de traitement de chaque activité. Il aide à distinguer le temps d’attente, c’est-à-dire le temps entre les activités, du temps de traitement, c’est-à-dire le temps consacré à une activité. Pourquoi c’est important Permet de calculer directement la durée nécessaire à l’achèvement d’une activité et de distinguer le temps de traitement du temps d’attente. Où les obtenir Certaines tables de transactions d’Oracle Health Revenue Cycle peuvent contenir un horodatage de début et un horodatage de fin pour des tâches spécifiques de longue durée. Exemples 2023-04-15T09:05:14Z2023-04-18T16:00:00Z | |||
| Identifiant de la demande de remboursement ClaimId | Identifiant unique de la demande de remboursement adressée à un payeur. | ||
| Description Cet attribut correspond à l’identifiant unique attribué à une demande de remboursement créée puis envoyée à un payeur pour obtenir un remboursement. Un même événement de facturation peut générer une ou plusieurs demandes au cours de son cycle de vie, par exemple lorsqu’une correction est nécessaire. L’utilisation de l’identifiant de la demande de remboursement permet de suivre une soumission précise auprès d’un payeur et de la relier directement à la réponse reçue, comme un paiement ou un refus. Elle offre un niveau de suivi plus détaillé au sein du processus global de cycle de revenus. Pourquoi c’est important Fournit un identifiant précis pour suivre le parcours d’une demande de remboursement auprès d’un payeur, avec un niveau de détail supérieur à celui de l’événement de facturation global. Où les obtenir Cet identifiant est généré par Oracle Health lors de la création de la demande de remboursement et enregistré dans la table principale des demandes. Exemples CLM-2023-55489CLM-2023-55490CLM-2023-55491-C1 | |||
| Identifiant du patient PatientId | Identifiant unique du patient associé à l’événement de facturation. | ||
| Description Cet attribut est l’identifiant unique du patient ayant reçu le service, souvent appelé Medical Record Number (MRN). Il relie la transaction financière à une personne précise. Bien qu’il ne constitue pas l’identifiant du dossier du processus, l’identifiant du patient permet d’agréger tous les événements de facturation associés à un même patient afin de comprendre l’ensemble de son parcours financier. Il permet également de segmenter les données selon les caractéristiques démographiques ou l’historique du patient, lorsqu’il est associé aux données de référence des patients. Pourquoi c’est important Relie les événements financiers à un patient précis, ce qui permet une analyse centrée sur le patient et l’agrégation de l’ensemble de ses activités de facturation. Où les obtenir Cet identifiant est un élément central du dossier de référence du patient et figure dans toutes les tables de transactions associées, notamment celles des frais, des demandes de remboursement et des paiements. Exemples MRN-1002345MRN-1002346MRN-1002347 | |||
| Montant des frais ChargeAmount | Valeur monétaire brute de la prestation ou du produit facturé. | ||
| Description Cet attribut représente le montant initial, avant remise, facturé pour une prestation, avant l’application des ajustements, des remises contractuelles ou des paiements. Il constitue la valeur financière de départ du Billing Event. Le suivi du montant des frais est essentiel à l’analyse financière, notamment pour calculer la valeur totale des prestations réalisées et comprendre l’incidence financière des ajustements ou passages en perte ultérieurs. Il sert de référence pour mesurer la réalisation des revenus. Pourquoi c’est important Établit la valeur financière initiale du cas, qui constitue la base de toutes les analyses financières et évaluations d’impact ultérieures. Où les obtenir Situé dans les tables de détail des frais ou de transactions de frais d’Oracle Health. Exemples 150.001250.7585.50 | |||
| Motif de contestation DisputeReason | Motif fourni par le client ou le patient pour contester une facture ou des frais. | ||
| Description Cet attribut enregistre le motif pour lequel un patient ou une autre partie responsable a contesté une facture. Les motifs peuvent inclure des frais incorrects, des services non fournis ou des problèmes liés au traitement par l’assurance. Ces informations sont essentielles pour le Dashboard « Indicateurs de résolution des contestations de factures ». Comprendre les motifs de contestation les plus fréquents aide à identifier les problèmes systémiques dans les processus de saisie des frais, de codage ou de facturation. Le traitement de ces causes racines peut réduire sensiblement le taux de contestation et la charge administrative nécessaire à leur résolution. Pourquoi c’est important Explique pourquoi les factures sont contestées et met directement en évidence les problèmes de précision ou de clarté de la facturation à corriger. Où les obtenir Ces informations sont probablement enregistrées dans un module de gestion des dossiers ou de service client d’Oracle Health, associé au compte du patient. Exemples Service incorrect facturéFrais en doubleFacturation incorrecte à l'assuranceService non fourni | |||
| Système source SourceSystem | Système depuis lequel les données d’événements ont été extraites. | ||
| Description Cet attribut identifie l’application ou le module source à l’origine des données. Pour ce processus, il s’agira généralement d’« Oracle Health Revenue Cycle », mais il peut également préciser différents modules du système lorsque les données proviennent de plusieurs sources. Cette information est utile pour la gouvernance des données et le dépannage. Elle permet de confirmer la traçabilité des données et revêt une importance particulière dans les environnements où plusieurs systèmes contribuent à un même processus de bout en bout. Pourquoi c’est important Fournit le contexte sur l’origine des données, ce qui est essentiel pour leur validation et leur gouvernance, ainsi que pour comprendre les variations du processus susceptibles de dépendre du système. Où les obtenir Il s’agit souvent d’une valeur statique ajoutée lors du processus d’extraction, de transformation et de chargement (ETL) afin d’indiquer l’origine du jeu de données. Exemples OracleHealth-RCMOracleHealth-CernerOH-RevCycle-PROD | |||
Activités de gestion du cycle des revenus
| Activité | Description | ||
|---|---|---|---|
| Claim généré | Indique le moment où les frais individuels sont regroupés dans une demande de remboursement officielle, telle qu’une UB-04 ou une CMS-1500. Il s’agit d’un événement généré par le système qui crée la facture initiale. | ||
| Pourquoi c’est important Cette étape importante indique que la demande est prête à être facturée au payeur. Elle constitue le point final pour mesurer le délai interne entre les frais et la facture. Où les obtenir Événement explicite enregistré dans les journaux ou les tables de génération des claims. Recherchez l’horodatage de création de l’enregistrement principal du claim associé à l’encounter. Collecte Événement enregistré lors de la création de l’enregistrement du claim. Type d’événement explicit | |||
| Claim transmis au payeur | Représente la transmission électronique ou papier du claim généré à la compagnie d’assurance ou au payeur. Le système doit enregistrer la date et l’heure de cette transmission. | ||
| Pourquoi c’est important Cette activité déclenche le décompte du cycle de paiement. L’analyse du délai entre la transmission et le paiement est essentielle pour évaluer la performance des payeurs et le délai moyen de recouvrement (DSO). Où les obtenir Ces informations proviennent du module de gestion des claims, qui enregistre les événements de transmission. Recherchez un horodatage de soumission ou un changement de statut vers « Submitted » dans l’historique du claim. Collecte Événement enregistré lorsque le claim est transmis avec succès par l’intermédiaire de la clearinghouse. Type d’événement explicit | |||
| Compte clôturé | Il s’agit de la dernière activité, qui indique que le solde du compte est nul et qu’aucune activité supplémentaire n’est prévue. Cet état est souvent déduit lorsque le solde du compte atteint zéro. | ||
| Pourquoi c’est important Cette étape marque l’achèvement réussi du cycle de revenus. Le délai nécessaire pour atteindre cet état constitue un indicateur important de l’efficacité globale du processus. Où les obtenir Cet état est généralement déduit en identifiant le premier moment où le solde restant dû du compte devient nul et le demeure après l’enregistrement de tous les paiements et ajustements. Collecte Calculé lorsque le solde du compte est pour la première fois égal à zéro après l’enregistrement de tous les frais et paiements. Type d’événement calculated | |||
| Paiement comptabilisé | Représente l’affectation du paiement reçu du payeur aux frais correspondants du compte patient. Il s’agit d’une transaction financière enregistrée par un utilisateur ou un processus automatisé. | ||
| Pourquoi c’est important L’efficacité de la comptabilisation des paiements influe sur l’exactitude des comptes clients. Les retards à cette étape peuvent fausser la situation financière et retarder la facturation secondaire. Où les obtenir Ces informations se trouvent dans les tables de transactions de paiement. Chaque comptabilisation de paiement possède un identifiant de transaction unique et un horodatage associé. Collecte Une transaction financière est enregistrée lorsque le paiement est affecté au compte. Type d’événement explicit | |||
| Patient Encounter créé | Indique la création d’un compte patient pour une visite ou une prestation donnée. Il s’agit généralement d’un événement explicite déclenché par le système d’enregistrement ou par un flux Admit/Discharge/Transfer (ADT). | ||
| Pourquoi c’est important Cet événement constitue le point de départ de l’ensemble du cycle de revenus associé à un Billing Event. Il permet d’analyser la durée totale du processus et la précision de l’enregistrement. Où les obtenir Ces informations proviennent des journaux du module Patient Registration ou ADT. Recherchez les événements de création d’un encounter ou l’horodatage le plus ancien associé à l’encounter ou au numéro financier. Collecte Événement enregistré lors de l’enregistrement ou de l’admission du patient. Type d’événement explicit | |||
| Claim corrigé soumis | Représente la soumission au payeur d’un claim révisé ou corrigé, souvent à la suite d’un refus ou d’une demande d’informations complémentaires. Cet événement est identifié par une nouvelle soumission comportant un indicateur de correction. | ||
| Pourquoi c’est important Cette activité constitue une étape importante de la boucle de reprise liée à la gestion des refus. Une fréquence élevée indique des problèmes de précision des claims initiaux. Où les obtenir Ces informations sont extraites des journaux de soumission des claims. Recherchez une nouvelle soumission pour un encounter existant, souvent identifiée par un code de resoumission ou un numéro d’itération supérieur. Collecte Événement enregistré lors de la resoumission d’un claim, souvent identifiable grâce à un code spécifique de type de fréquence du claim. Type d’événement explicit | |||
| Compte ajusté | Représente un ajustement financier apporté au solde du compte, tel qu’une remise contractuelle, une créance passée en perte ou une réduction. Chaque ajustement constitue une transaction financière distincte. | ||
| Pourquoi c’est important Les ajustements ont une incidence directe sur les revenus. L’analyse de leur fréquence, de leur type et de leur montant aide à repérer les fuites de revenus et les erreurs de facturation. Où les obtenir Ces informations se trouvent dans les tables de transactions financières. Chaque ajustement y est enregistré comme une ligne distincte avec un code de transaction et un horodatage spécifiques. Collecte Une transaction financière est enregistrée avec un code d’ajustement spécifique. Type d’événement explicit | |||
| Début de l’activité de recouvrement | Indique que le compte du patient a été transféré vers un processus de recouvrement en raison d’un impayé. Cette étape est généralement enregistrée par une modification de la classe financière ou du statut du compte. | ||
| Pourquoi c’est important Il s’agit d’une étape importante dans la gestion des créances irrécouvrables. L’analyse des facteurs qui y conduisent et de son taux de réussite est essentielle à la santé financière. Où les obtenir Déduit du changement du champ de statut du compte vers « Collections » ou « Bad Debt ». Ce changement de statut doit être associé à un horodatage. Collecte Déduit d’un changement du statut du compte vers « Collections » ou un état similaire. Type d’événement inferred | |||
| Frais codés | Représente le processus au cours duquel les codeurs médicaux attribuent des codes normalisés, tels que CPT ou ICD-10, aux frais saisis. Cette étape est souvent suivie au moyen d’un changement de statut du frais ou de l’encounter. | ||
| Pourquoi c’est important Les retards de codage constituent un goulot d’étranglement fréquent. Le suivi de cette activité aide à identifier les inefficacités du flux de travail de codage et leur incidence sur les délais de facturation. Où les obtenir Cet événement est souvent déduit d’un changement de statut de l’encounter patient ou du lot de frais, par exemple de « Uncoded » à « Coded ». L’horodatage de ce changement de statut est requis. Collecte Déduit du changement de statut de l’encounter ou des frais vers « Coded » ou « Ready for Billing ». Type d’événement inferred | |||
| Frais saisis | Représente l’enregistrement de prestations ou d’articles facturables dans le compte du patient. Cette opération peut être effectuée automatiquement par les systèmes cliniques ou saisie manuellement par le personnel. | ||
| Pourquoi c’est important Cette activité est essentielle pour mesurer le « charge lag », c’est-à-dire le délai entre la prestation et le début de la facturation, qui a une incidence directe sur la trésorerie et l’intégrité des revenus. Où les obtenir Ces informations sont extraites des tables de transactions de frais, à partir de l’horodatage de création de chaque ligne de frais. Dans Oracle Health, elles se trouvent souvent dans les tables liées aux frais. Collecte Entrée du journal des transactions créée pour chaque nouveau frais. Type d’événement explicit | |||
| Refus contesté | Action d’un utilisateur ou du système indiquant qu’un claim refusé fait l’objet d’un recours. Cette action est généralement enregistrée comme une mise à jour de statut ou comme une tâche spécifique créée dans une file de travail. | ||
| Pourquoi c’est important Cette activité lance une boucle de reprise. L’analyse de la fréquence et du taux de réussite des recours est essentielle pour optimiser le recouvrement des revenus. Où les obtenir Il peut s’agir d’un événement explicite déclenché par un utilisateur ou d’un événement déduit d’un changement de statut du claim, par exemple « Appealed » ou « In Review ». Collecte Changement de statut ou événement enregistré lorsqu’un utilisateur lance la procédure de recours pour un claim refusé. Type d’événement explicit | |||
| Refus reçu | Indique que le payeur a rejeté un claim ou certaines lignes de frais, comme le précise la remittance advice. Cet événement est souvent déduit des codes de refus présents dans les données de remittance. | ||
| Pourquoi c’est important Le suivi des refus est essentiel pour identifier leurs causes profondes, telles que les erreurs de codage ou les problèmes d’éligibilité, et améliorer le taux de claims acceptés dès la première soumission. Où les obtenir Déduit des données de remittance (ERA/835). Lorsqu’un claim ou une ligne de frais présente un montant refusé non nul ainsi qu’un code de motif de refus correspondant, cet événement est déclenché. Collecte Déduit des données de remittance contenant des codes de motif de refus (CARC/RARC). Type d’événement inferred | |||
| Relevé patient envoyé | Indique qu’une facture correspondant au reste à la charge du patient a été générée et envoyée. Il s’agit d’une action explicite enregistrée par le module de facturation patient. | ||
| Pourquoi c’est important Cette étape lance la partie du cycle de revenus consacrée au paiement par le patient. Son suivi aide à analyser l’efficacité du recouvrement auprès des patients. Où les obtenir Ces informations proviennent des journaux de facturation patient ou de correspondance. Le système doit enregistrer la date à laquelle chaque relevé a été généré ou envoyé. Collecte Événement enregistré lorsqu’un relevé patient est généré, imprimé ou envoyé électroniquement. Type d’événement explicit | |||
| Remittance reçue | Indique la réception d’une Electronic Remittance Advice (ERA) ou d’une Explanation of Benefits (EOB) papier de la part du payeur. Ce document précise quels frais ont été payés, refusés ou ajustés. | ||
| Pourquoi c’est important Il s’agit de la première réponse du payeur. Elle est essentielle pour comprendre la vitesse des paiements et repérer rapidement les tendances en matière de refus. Où les obtenir Enregistré dans le module de traitement des remittances. Recherchez l’horodatage d’importation ou de création du fichier ERA, par exemple un fichier de transaction 835, associé au claim. Collecte Événement enregistré lors de l’importation et du traitement du fichier de remittance du payeur, par exemple ANSI 835. Type d’événement explicit | |||
Guides d’extraction
Étapes
- Demander l’accès à la base de données : obtenez des identifiants en lecture seule pour la base de données Oracle Health Revenue Cycle. Vous devez pouvoir accéder aux schémas contenant les données relatives aux patients, aux rencontres, à la facturation et aux transactions financières. Cette étape nécessite généralement l’approbation des équipes chargées de la sécurité informatique et de l’administration des bases de données.
- Identifier les noms des schémas et des tables : travaillez avec un administrateur de base de données ou un analyste système afin de confirmer les noms exacts des schémas et des tables de votre instance Oracle Health. Les noms fournis dans la requête sont des valeurs génériques courantes et doivent être associés à ceux de votre environnement.
- Installer un client SQL : installez sur votre poste de travail un client SQL compatible, tel qu’Oracle SQL Developer ou DBeaver. Cet outil servira à se connecter à la base de données et à exécuter le script d’extraction.
- Établir la connexion à la base de données : configurez une nouvelle connexion dans votre client SQL à l’aide de l’hôte, du port, du nom du service et des identifiants fournis. Testez la connexion pour vérifier qu’elle fonctionne correctement.
- Personnaliser la requête SQL : copiez le script SQL fourni dans une nouvelle fenêtre de l’éditeur de requêtes. Repérez les valeurs génériques, telles que
[START_DATE]et[END_DATE], puis remplacez-les par la période souhaitée pour votre analyse, par exemple, '2023-01-01'. Adaptez également les conditions de filtrage à vos besoins d’analyse, notamment pour filtrer une Patient Class donnée. - Exécuter le script d’extraction : lancez le script SQL personnalisé. La requête est conçue pour couvrir un périmètre large et peut nécessiter plusieurs minutes, voire plusieurs heures, selon la période sélectionnée et la taille de votre base de données.
- Examiner les premiers résultats : une fois la requête terminée, examinez les premières centaines de lignes dans la grille de résultats de votre client SQL. Recherchez les erreurs évidentes, comme des colonnes entièrement nulles ou des formats de données incorrects, afin de vérifier que le script s’est exécuté correctement.
- Exporter les données au format CSV : exportez l’ensemble des résultats dans un fichier CSV. Utilisez l’encodage UTF-8 pour éviter les problèmes de caractères. Vérifiez que le fichier exporté contient une ligne d’en-tête avec les noms de colonnes définis dans les alias de la requête, par exemple, "BillingEvent" et "ActivityName".
- Préparer le chargement : avant de charger le fichier dans un outil de Process Mining, ouvrez le CSV pour vérifier son intégrité. Assurez-vous que le format des horodatages est cohérent et que les en-têtes de colonnes correspondent exactement aux attributs requis. Le fichier est alors prêt à être chargé.
Configuration
- Période : la requête utilise les paramètres génériques
[START_DATE]et[END_DATE]. Il est essentiel de définir une période précise et raisonnable afin de maîtriser le volume de données. Pour une première analyse, une période de 3 à 6 mois est recommandée. - Filtrage : le jeu de données initial est filtré selon la date d’enregistrement de la rencontre (
reg_dt_tm) dans la sectionRelevantEncounters. Vous pouvez ajouter d’autres clausesWHEREà cette section pour réduire le périmètre, par exemplee.patient_class_code IN ('INPATIENT', 'OUTPATIENT')afin de cibler certains types de rencontres. - Performances : l’exécution de requêtes directes sur une base de production peut affecter les performances. Il est vivement recommandé d’effectuer cette extraction en dehors des heures de pointe ou, si elle existe, sur une réplique en lecture seule de la base de production.
- Prérequis : cette méthode nécessite un compte utilisateur disposant des privilèges
SELECTsur toutes les tables référencées dans la requête. Il s’agit notamment des tables relatives aux rencontres, à la facturation, aux frais, aux demandes de remboursement, aux règlements et aux transactions financières. - Correspondance des tables et des colonnes : le script fourni utilise des noms courants et représentatifs pour les tables et les colonnes. Vous devez les vérifier et les associer aux noms réels du schéma Oracle Health de votre organisation. Par exemple,
FINANCIAL_TRANSACTIONpeut être nomméeAR_TRANSACTIONSdans votre système.
a Exemple de requête sql
WITH RelevantEncounters AS (
SELECT
e.billing_event_id
FROM ENCOUNTER e
WHERE e.reg_dt_tm BETWEEN TO_DATE('[START_DATE]', 'YYYY-MM-DD') AND TO_DATE('[END_DATE]', 'YYYY-MM-DD')
)
SELECT
e.billing_event_id AS "BillingEvent",
'Patient Encounter Created' AS "ActivityName",
e.reg_dt_tm AS "EventTimestamp",
p.name_full_formatted AS "UserPerformingAction",
org.organization_name AS "BillingDepartment",
pyr.payer_name AS "PayerName",
e.patient_class_code AS "PatientClass",
NULL AS "AdjustmentAmount",
e.total_account_balance AS "OutstandingBalance",
NULL AS "DenialReasonCode"
FROM ENCOUNTER e
JOIN RelevantEncounters re ON e.billing_event_id = re.billing_event_id
LEFT JOIN PERSONNEL p ON e.reg_prsnl_id = p.person_id
LEFT JOIN ORGANIZATION org ON e.reg_facility_org_id = org.organization_id
LEFT JOIN PAYER pyr ON e.primary_payer_id = pyr.payer_id
UNION ALL
SELECT
cd.billing_event_id AS "BillingEvent",
'Charges Captured' AS "ActivityName",
cd.charge_entry_dt_tm AS "EventTimestamp",
p.name_full_formatted AS "UserPerformingAction",
org.organization_name AS "BillingDepartment",
pyr.payer_name AS "PayerName",
e.patient_class_code AS "PatientClass",
NULL AS "AdjustmentAmount",
cd.charge_balance AS "OutstandingBalance",
NULL AS "DenialReasonCode"
FROM CHARGE_DETAIL cd
JOIN ENCOUNTER e ON cd.encntr_id = e.encntr_id
JOIN RelevantEncounters re ON e.billing_event_id = re.billing_event_id
LEFT JOIN PERSONNEL p ON cd.entry_prsnl_id = p.person_id
LEFT JOIN ORGANIZATION org ON cd.performing_dept_org_id = org.organization_id
LEFT JOIN PAYER pyr ON e.primary_payer_id = pyr.payer_id
UNION ALL
SELECT
ch.billing_event_id AS "BillingEvent",
'Charges Coded' AS "ActivityName",
ch.coded_dt_tm AS "EventTimestamp",
p.name_full_formatted AS "UserPerformingAction",
org.organization_name AS "BillingDepartment",
pyr.payer_name AS "PayerName",
e.patient_class_code AS "PatientClass",
NULL AS "AdjustmentAmount",
e.total_account_balance AS "OutstandingBalance",
NULL AS "DenialReasonCode"
FROM CODING_HISTORY ch
JOIN ENCOUNTER e ON ch.encntr_id = e.encntr_id
JOIN RelevantEncounters re ON e.billing_event_id = re.billing_event_id
LEFT JOIN PERSONNEL p ON ch.coder_prsnl_id = p.person_id
LEFT JOIN ORGANIZATION org ON p.default_org_id = org.organization_id
LEFT JOIN PAYER pyr ON e.primary_payer_id = pyr.payer_id
UNION ALL
SELECT
cl.billing_event_id AS "BillingEvent",
'Claim Generated' AS "ActivityName",
cl.create_dt_tm AS "EventTimestamp",
p.name_full_formatted AS "UserPerformingAction",
org.organization_name AS "BillingDepartment",
pyr.payer_name AS "PayerName",
e.patient_class_code AS "PatientClass",
NULL AS "AdjustmentAmount",
cl.claim_balance AS "OutstandingBalance",
NULL AS "DenialReasonCode"
FROM CLAIM cl
JOIN ENCOUNTER e ON cl.encntr_id = e.encntr_id
JOIN RelevantEncounters re ON e.billing_event_id = re.billing_event_id
LEFT JOIN PERSONNEL p ON cl.create_prsnl_id = p.person_id
LEFT JOIN ORGANIZATION org ON cl.billing_entity_org_id = org.organization_id
LEFT JOIN PAYER pyr ON cl.payer_id = pyr.payer_id
UNION ALL
SELECT
csl.billing_event_id AS "BillingEvent",
'Claim Submitted To Payer' AS "ActivityName",
csl.submission_dt_tm AS "EventTimestamp",
p.name_full_formatted AS "UserPerformingAction",
org.organization_name AS "BillingDepartment",
pyr.payer_name AS "PayerName",
e.patient_class_code AS "PatientClass",
NULL AS "AdjustmentAmount",
cl.claim_balance AS "OutstandingBalance",
NULL AS "DenialReasonCode"
FROM CLAIM_SUBMISSION_LOG csl
JOIN CLAIM cl ON csl.claim_id = cl.claim_id
JOIN ENCOUNTER e ON cl.encntr_id = e.encntr_id
JOIN RelevantEncounters re ON e.billing_event_id = re.billing_event_id
LEFT JOIN PERSONNEL p ON csl.submit_prsnl_id = p.person_id
LEFT JOIN ORGANIZATION org ON cl.billing_entity_org_id = org.organization_id
LEFT JOIN PAYER pyr ON cl.payer_id = pyr.payer_id
WHERE csl.submission_type = 'INITIAL'
UNION ALL
SELECT
ra.billing_event_id AS "BillingEvent",
'Remittance Received' AS "ActivityName",
ra.remit_received_dt_tm AS "EventTimestamp",
p.name_full_formatted AS "UserPerformingAction",
org.organization_name AS "BillingDepartment",
pyr.payer_name AS "PayerName",
e.patient_class_code AS "PatientClass",
NULL AS "AdjustmentAmount",
e.total_account_balance AS "OutstandingBalance",
NULL AS "DenialReasonCode"
FROM REMITTANCE_ADVICE ra
JOIN ENCOUNTER e ON ra.encntr_id = e.encntr_id
JOIN RelevantEncounters re ON e.billing_event_id = re.billing_event_id
LEFT JOIN PERSONNEL p ON ra.processed_prsnl_id = p.person_id
LEFT JOIN ORGANIZATION org ON ra.processing_org_id = org.organization_id
LEFT JOIN PAYER pyr ON ra.payer_id = pyr.payer_id
UNION ALL
SELECT
ft.billing_event_id AS "BillingEvent",
'Payment Posted' AS "ActivityName",
ft.transaction_dt_tm AS "EventTimestamp",
p.name_full_formatted AS "UserPerformingAction",
org.organization_name AS "BillingDepartment",
pyr.payer_name AS "PayerName",
e.patient_class_code AS "PatientClass",
NULL AS "AdjustmentAmount",
ft.ending_balance AS "OutstandingBalance",
NULL AS "DenialReasonCode"
FROM FINANCIAL_TRANSACTION ft
JOIN ENCOUNTER e ON ft.encntr_id = e.encntr_id
JOIN RelevantEncounters re ON e.billing_event_id = re.billing_event_id
LEFT JOIN PERSONNEL p ON ft.post_prsnl_id = p.person_id
LEFT JOIN ORGANIZATION org ON ft.post_dept_org_id = org.organization_id
LEFT JOIN PAYER pyr ON ft.payer_id = pyr.payer_id
WHERE ft.transaction_type_code = 'PAYMENT'
UNION ALL
SELECT
rd.billing_event_id AS "BillingEvent",
'Denial Received' AS "ActivityName",
ra.remit_received_dt_tm AS "EventTimestamp",
p.name_full_formatted AS "UserPerformingAction",
org.organization_name AS "BillingDepartment",
pyr.payer_name AS "PayerName",
e.patient_class_code AS "PatientClass",
NULL AS "AdjustmentAmount",
e.total_account_balance AS "OutstandingBalance",
rd.denial_reason_code AS "DenialReasonCode"
FROM REMITTANCE_DETAIL rd
JOIN REMITTANCE_ADVICE ra ON rd.remit_id = ra.remit_id
JOIN ENCOUNTER e ON ra.encntr_id = e.encntr_id
JOIN RelevantEncounters re ON e.billing_event_id = re.billing_event_id
LEFT JOIN PERSONNEL p ON ra.processed_prsnl_id = p.person_id
LEFT JOIN ORGANIZATION org ON ra.processing_org_id = org.organization_id
LEFT JOIN PAYER pyr ON ra.payer_id = pyr.payer_id
WHERE rd.denial_reason_code IS NOT NULL
UNION ALL
SELECT
at.billing_event_id AS "BillingEvent",
'Denial Appealed' AS "ActivityName",
at.appeal_filed_dt_tm AS "EventTimestamp",
p.name_full_formatted AS "UserPerformingAction",
org.organization_name AS "BillingDepartment",
pyr.payer_name AS "PayerName",
e.patient_class_code AS "PatientClass",
NULL AS "AdjustmentAmount",
e.total_account_balance AS "OutstandingBalance",
at.related_denial_code AS "DenialReasonCode"
FROM APPEAL_TRACKING at
JOIN ENCOUNTER e ON at.encntr_id = e.encntr_id
JOIN RelevantEncounters re ON e.billing_event_id = re.billing_event_id
LEFT JOIN PERSONNEL p ON at.appeal_prsnl_id = p.person_id
LEFT JOIN ORGANIZATION org ON p.default_org_id = org.organization_id
LEFT JOIN PAYER pyr ON at.payer_id = pyr.payer_id
UNION ALL
SELECT
csl.billing_event_id AS "BillingEvent",
'Corrected Claim Submitted' AS "ActivityName",
csl.submission_dt_tm AS "EventTimestamp",
p.name_full_formatted AS "UserPerformingAction",
org.organization_name AS "BillingDepartment",
pyr.payer_name AS "PayerName",
e.patient_class_code AS "PatientClass",
NULL AS "AdjustmentAmount",
cl.claim_balance AS "OutstandingBalance",
NULL AS "DenialReasonCode"
FROM CLAIM_SUBMISSION_LOG csl
JOIN CLAIM cl ON csl.claim_id = cl.claim_id
JOIN ENCOUNTER e ON cl.encntr_id = e.encntr_id
JOIN RelevantEncounters re ON e.billing_event_id = re.billing_event_id
LEFT JOIN PERSONNEL p ON csl.submit_prsnl_id = p.person_id
LEFT JOIN ORGANIZATION org ON cl.billing_entity_org_id = org.organization_id
LEFT JOIN PAYER pyr ON cl.payer_id = pyr.payer_id
WHERE csl.submission_type = 'CORRECTED'
UNION ALL
SELECT
psl.billing_event_id AS "BillingEvent",
'Patient Statement Sent' AS "ActivityName",
psl.statement_sent_dt_tm AS "EventTimestamp",
p.name_full_formatted AS "UserPerformingAction",
org.organization_name AS "BillingDepartment",
NULL AS "PayerName",
e.patient_class_code AS "PatientClass",
NULL AS "AdjustmentAmount",
psl.statement_balance AS "OutstandingBalance",
NULL AS "DenialReasonCode"
FROM PATIENT_STATEMENT_LOG psl
JOIN ENCOUNTER e ON psl.encntr_id = e.encntr_id
JOIN RelevantEncounters re ON e.billing_event_id = re.billing_event_id
LEFT JOIN PERSONNEL p ON psl.sent_by_prsnl_id = p.person_id
LEFT JOIN ORGANIZATION org ON p.default_org_id = org.organization_id
UNION ALL
SELECT
ash.billing_event_id AS "BillingEvent",
'Collection Activity Started' AS "ActivityName",
ash.status_change_dt_tm AS "EventTimestamp",
p.name_full_formatted AS "UserPerformingAction",
org.organization_name AS "BillingDepartment",
NULL AS "PayerName",
e.patient_class_code AS "PatientClass",
NULL AS "AdjustmentAmount",
ash.account_balance AS "OutstandingBalance",
NULL AS "DenialReasonCode"
FROM ACCOUNT_STATUS_HISTORY ash
JOIN ENCOUNTER e ON ash.encntr_id = e.encntr_id
JOIN RelevantEncounters re ON e.billing_event_id = re.billing_event_id
LEFT JOIN PERSONNEL p ON ash.change_prsnl_id = p.person_id
LEFT JOIN ORGANIZATION org ON ash.responsible_org_id = org.organization_id
WHERE ash.new_status_code = 'COLLECTIONS'
UNION ALL
SELECT
ft.billing_event_id AS "BillingEvent",
'Account Adjusted' AS "ActivityName",
ft.transaction_dt_tm AS "EventTimestamp",
p.name_full_formatted AS "UserPerformingAction",
org.organization_name AS "BillingDepartment",
pyr.payer_name AS "PayerName",
e.patient_class_code AS "PatientClass",
ft.transaction_amount AS "AdjustmentAmount",
ft.ending_balance AS "OutstandingBalance",
ft.adjustment_reason_code AS "DenialReasonCode"
FROM FINANCIAL_TRANSACTION ft
JOIN ENCOUNTER e ON ft.encntr_id = e.encntr_id
JOIN RelevantEncounters re ON e.billing_event_id = re.billing_event_id
LEFT JOIN PERSONNEL p ON ft.post_prsnl_id = p.person_id
LEFT JOIN ORGANIZATION org ON ft.post_dept_org_id = org.organization_id
LEFT JOIN PAYER pyr ON ft.payer_id = pyr.payer_id
WHERE ft.transaction_type_code = 'ADJUSTMENT'
UNION ALL
SELECT
e.billing_event_id AS "BillingEvent",
'Account Closed' AS "ActivityName",
e.account_closed_dt_tm AS "EventTimestamp",
p.name_full_formatted AS "UserPerformingAction",
org.organization_name AS "BillingDepartment",
NULL AS "PayerName",
e.patient_class_code AS "PatientClass",
NULL AS "AdjustmentAmount",
0 AS "OutstandingBalance",
NULL AS "DenialReasonCode"
FROM ENCOUNTER e
JOIN RelevantEncounters re ON e.billing_event_id = re.billing_event_id
LEFT JOIN PERSONNEL p ON e.closed_by_prsnl_id = p.person_id
LEFT JOIN ORGANIZATION org ON e.reg_facility_org_id = org.organization_id
WHERE e.total_account_balance = 0 AND e.account_closed_dt_tm IS NOT NULL; Prêt à commencer ?
Utilisez ce modèle pour préparer vos données dans les meilleures conditions. Commencez dès aujourd’hui à transformer votre processus de gestion du cycle des revenus.
Optimisez votre cycle de revenus pour accélérer les paiements
Supprimez les goulots d’étranglement, réduisez de 30 % la durée du cycle et augmentez vos encaissements.
Aucune carte bancaire requise. La configuration ne prend que quelques minutes.